Android: как избежать компоновки при нажатии клавиатуры

У меня есть макет, как показано ниже.

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:weightSum="1"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:text="Button" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <Button android:text="Button" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <Button android:text="Button" android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <Button android:text="Button" android:id="@+id/button4" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> <Button android:text="Button" android:id="@+id/button5" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> </LinearLayout> <ImageButton android:id="@+id/imageButton1" android:src="@android:drawable/stat_notify_sync_noanim" android:layout_height="fill_parent" android:layout_weight="1" android:layout_width="fill_parent"></ImageButton> <EditText android:id="@+id/editText1" android:layout_height="wrap_content" android:layout_width="match_parent"> <requestFocus></requestFocus> </EditText> </LinearLayout> 

Когда вызывается программная клавиатура, нажимая на редактируемый текст, весь рабочий лист выталкивается. Могу ли я держать кнопки на заголовке исправленными и пропускать изображение? Потому что кнопки будут действовать как панель навигации, поэтому она должна быть там, даже когда макет подталкивается вверх.

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

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

Читайте статью здесь: http://android-developers.blogspot.com/2009/04/updating-applications-for-on-screen.html
Вы должны добавить параметр manifest android: windowSoftInputMode = "adjustResize" в свой тег активности.

EDITED: Правильный флаг: android: windowSoftInputMode = "adjustResize"

Из всех свойств под андроид: windowSoftInputMode в манифесте единственное, что сработало

андроид: windowSoftInputMode = "adjustNothing"

В моем файле AndroidManifest я добавил в действие следующий код:

 android:windowSoftInputMode="adjustPan" 

ИСТОРИЯ

На самом деле, я попробовал AdjustResize и AdjustNothing, но он не работал на моем конце, поэтому я пробовал другие способы. Я нашел этот ответ полезным и надеюсь, что он решит вашу проблему! 🙂