Android: показ клавиатуры перемещает мои компоненты вверх, я хочу скрыть их вместо этого


я добавил LinearLayOut с некоторыми кнопками мой экран RelativeLayOut он сам

вот код для этого линейного менеджера компоновки

<LinearLayout
    android:orientation="horizontal"
    android:gravity="bottom"
    android:layout_alignParentBottom="true"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:id="@+id/Footer"
    android:layout_marginBottom="5dp">

вот в чем проблема:

в верхней части есть компонент EditText , и он выводит на экран мягкую клавиатуру, и приносит мой менеджер нижнего колонтитула поверх клавиатуры и в конечном итоге разрушает весь мой пользовательский интерфейс.

каково точное решение?

P. S. У меня удалены android:gravity="bottom" и android:layout_alignParentBottom="true" один за другим, но с невезением я не получил желаемого результата.

спасибо

2 57

2 ответа:

добавить android:windowSoftInputMode="adjustPan" для манифеста-к соответствующему действию:

  <activity android:name="MyActivity"
    ...
    android:windowSoftInputMode="adjustPan"
    ...
  </activity>

вы, вероятно, хотите

<activity
     ...
   android:windowSoftInputMode="adjustNothing"> 
</activity>

это предотвратит любые изменения макета при отображении мягкой клавиатуры.

вероятно, есть некоторая путаница по этому поводу, так как в настоящее время он отсутствует в документации по адресу http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft