Android EditText расширяется до диалогового окна
У меня есть такой макет
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/viewer_top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/background_dark"
android:orientation="horizontal" >
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="3dp"
android:layout_weight="1" >
<EditText
android:id="@+id/viewer_filter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_filter"
android:background="@android:color/white"
android:drawableLeft="@android:drawable/ic_menu_search"
android:inputType="text"
android:paddingLeft="4dp"
android:selectAllOnFocus="true" >
</EditText>
<ImageView
android:id="@+id/viewer_filterX"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/viewer_filter"
android:layout_alignRight="@id/viewer_filter"
android:src="@android:drawable/ic_menu_close_clear_cancel"
android:visibility="invisible" >
</ImageView>
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginTop="3dp"
android:layout_marginBottom="5dp"
android:layout_weight="1" >
<EditText
android:id="@+id/viewer_search"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_search"
android:background="@android:color/white"
android:drawableLeft="@android:drawable/ic_menu_search"
android:inputType="text"
android:paddingLeft="4dp"
android:selectAllOnFocus="true" >
</EditText>
<ImageView
android:id="@+id/viewer_searchGo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/viewer_search"
android:layout_alignRight="@id/viewer_search"
android:src="@android:drawable/ic_menu_send"
android:visibility="invisible" >
</ImageView>
<ImageView
android:id="@+id/viewer_searchX"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/viewer_search"
android:layout_toLeftOf="@id/viewer_searchGo"
android:src="@android:drawable/ic_menu_close_clear_cancel"
android:visibility="invisible" >
</ImageView>
</RelativeLayout>
</LinearLayout>
<HorizontalScrollView
android:id="@+id/viewer_hscroll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/viewer_top" >
<ListView
android:id="@+id/viewer_list"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
</HorizontalScrollView>
</RelativeLayout>
Когда я нажимаю на любой EditText, он расширяется до этого диалогового окна:
В портретном режиме редактируемые тексты можно редактировать так, как они есть, без расширения. XML для портрета аналогичен, только редактируемые тексты расположены один под другим и имеют ширину экрана.
Как предотвратить это расширение EditText?
Не только весь экран телефона скрыт виртуальной клавиатурой EditText+, но и кликабельными изображениями, которые я помещаю редактируемый текст не виден.
- я попытался установить EditText layout_width в 0dp, но они не отображаются. Я не использую SearchViews, потому что они крадут фокус, и я не могу использовать клавишу back, чтобы вернуться к предыдущему действию.
Обновить
Я удалил XML layout-land и использовал один и тот же XML как для портрета, так и для ландшафта.
В портретном режиме это нормально, без расширения, в ландшафтном режиме есть расширение.
Так что это надо как-то делать с тем, чтобы быть в ландшафтном режиме.
5 ответов:
Добавьте эту строку в текст редактирования
android:imeOptions="flagNoFullscreen"
Редактирование текста выглядит следующим образом
<EditText android:id="@+id/viewer_filter" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="hint_filter" android:background="@android:color/white" android:drawableLeft="@android:drawable/ic_menu_search" android:inputType="text" android:paddingLeft="4dp" android:selectAllOnFocus="true" android:imeOptions="flagNoFullscreen">
У меня была похожая проблема. Вы можете использовать медитативный текст.setSingleLine (true); где вы его используете. Это решит вашу проблему.
Привет, пожалуйста, добавьте эту строку в коде java, где ваш текст редактирования объявлен Описание.setMaxLines(1);
Этот пост обращается к той же проблеме и имеет решение
Нужно добавить
android:imeOptions="flagNoExtractUi"
Чтобы предотвратить такое поведение.
Если кто-то знает, как, пожалуйста, отметьте этот пост как дубликат.