EditText с верхним / нижним layou_margin был закрыт программным вводом
У меня есть поле редактирования, которое содержит текст редактирования и кнопку в LinearLayout, как показано ниже:
<LinearLayout
android:id="@+id/et_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#e5e5e5"
android:gravity="center_vertical"
android:orientation="horizontal"
>
<EditText
android:id="@+id/write_comment"
android:layout_width="0dp"
android:layout_height="30.5dp"
android:layout_marginBottom="10.5dp"
android:layout_marginLeft="5.5dp"
android:layout_marginTop="10.5dp"
android:layout_weight="2.0"
android:background="@drawable/input_box_03"
android:hint="@string/saysomething"
android:paddingLeft="5dp"
android:textColorHint="@color/font_gray"
android:textSize="@dimen/login_edittext_font_size" />
<TextView
android:id="@+id/send_comment"
android:layout_width="52dp"
android:layout_height="29.5dp"
android:layout_marginLeft="8.5dp"
android:layout_marginRight="5.5dp"
android:background="@drawable/box"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="center"
android:text="@string/send"
android:textColor="@color/font_color_white" />
</LinearLayout>
LineraLayout находится в RelativeLayout, который соответствует размеру windowScreen, и я установил WindowInputSoftMode = "AdjustResize". Однако, когда отображается программная клавиатура, нижняя часть LinearLayout частично закрывается программной клавиатурой. Не знаю почему и как?
2 ответа
Я обнаружил, что проблема в настройках FullScreen для окна через getWindow(). SetFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FILL_FULLSCREEN);. Когда он установлен, клавиатура должна перемещать содержимое макета в более высокое положение, а верхняя часть клавиатуры должна прикрепляться к нижней части курсора.
Более конкретно, когда второй параметр установлен для FILL_PARENT, проблем нет. Если вы не хотите извлекать содержимое макета, просто используйте FrameLayout и установите windowInputSoftMode ="AdjustResize".
Попробуйте использовать
android:windowSoftInputMode="stateVisible|adjustResize"