Мягкая клавиатура Android отменит макет при появлении

Вот макет:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:layout_width="match_parent" android:layout_height="0px" android:layout_weight="1" /> <FrameLayout android:background="#0000ff" android:layout_width="match_parent" android:layout_height="0px" android:layout_weight="1" /> <FrameLayout android:layout_width="match_parent" android:layout_height="0px" android:layout_weight="1" /> </LinearLayout> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" /> </RelativeLayout> 

Введите описание изображения здесь

Я хочу, чтобы синяя полоса оставалась неповрежденной при нажатии EditText и появлялась мягкая клавиатура. Т.е. я хочу сохранить его размер и положение. Я попробовал все четыре возможных значения параметра android:windowSoftInputMode для моей активности android:windowSoftInputMode в AndroidManifest. И всегда моя голубая полоса перемещается или сжимается на мягкой клавиатуре:

android:windowSoftInputMode="adjustUnspecified" или по умолчанию:

Введите описание изображения здесь

android:windowSoftInputMode="adjustPan" или android:windowSoftInputMode="adjustNothing" :

Введите описание изображения здесь

android:windowSoftInputMode="adjustResize" :

Введите описание изображения здесь

Можно ли сохранить его одинаковым по размеру и положению, когда появляется программный ключ?

Solutions Collecting From Web of "Мягкая клавиатура Android отменит макет при появлении"

Поскольку вход поступает в ваш EditText , он всегда будет что-то перемещать.

Подумайте, есть ли два макета, один для тех случаев, когда клавиатура выключена, одна для клавиатуры.

Использование ViewSwitcher может помочь в этом.

Я думаю, это из-за LinearLayout, который вы используете. Можете ли вы изменить свой внутренний макет с относительной планировкой? В вашей текущей ситуации клавиатура просто изменяет поля между компонентами из-за линейного макета. И измените свой конфиг с помощью настройкиNothing.