У меня есть макет, как это страницы с видом Пейджер:«Push Up» в ListView, но не бар, когда мягкий вход показан
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black">
<LinearLayout
android:id="@+id/bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:layout_alignParentTop="true"
android:orientation="horizontal"
android:gravity="center"
android:background="@drawable/background_gray">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:paddingLeft="3dp" />
</LinearLayout>
<RelativeLayout
android:id="@+id/container_chat_box"
android:background="@drawable/conversation_background_gray"
android:layout_alignParentBottom="true"
android:layout_marginBottom="50dp">
<EditText
android:id="@+id/chat_box"
style="@style/ConversationChatBox" />
</RelativeLayout>
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/bar"
android:background="@android:color/white"
android:stackFromBottom="true"
android:transcriptMode="normal"
android:layout_above="@id/chat_box"
android:paddingBottom="15dp"
android:clipToPadding="false"
android:divider="@null"
android:dividerHeight="0dp"
android:listSelector="@android:color/transparent" />
</RelativeLayout>
Это идея о том, как он выглядит:
----------
[ bar ]
[list view]
[list view]
[list view]
[list view]
[edit text]
Когда я нажимаю на текст редактирования, я хотел бы бар, чтобы остаться там, где она находится (в верхней части экрана), но представление списка для толкания вверх, так что она выглядит следующим образом:
------------
[ bar ]
[list view]
[list view]
[edit text]
[keyboard ]
Что я получаю (бар выталкивается вверх и исчезает):
------------
[list view]
[list view]
[list view]
[edit text]
[keyboard ]
У меня есть это на моем AndroidManifest:
android:windowSoftInputMode="adjustPan"
Я пробовал разные комбинации значений для установки android:windowSoftInputMode
, но я либо получить клавиатуру, чтобы она отображалась в текстовом редакторе или весь экран, нажатый вверх.
Есть ли способ сохранить планку на месте, пока список переместится вверх? Заранее спасибо.
Попробуйте установить андроид: layout_height = «match_parent» для ListView – TpoM6oH
Спасибо за ответ. Это не изменило макет. Интересно, связана ли проблема с использованием android: layout_alignParentTop = "true" в линейке Linear Layout. Но я не могу придумать более правильный способ держать панель в верхней части экрана. – Marilia
Я изменил режим мягкого ввода на: android: windowSoftInputMode = "adjustResize" и добавил android: fitsSystemWindows = "true" к внешнему макету. Последовал некоторый код из [этого сообщения] (http://stackoverflow.com/questions/7417123/android-how-to-adjust-layout-in-full-screen-mode-when-softkeyboard-is-visible), и теперь все работает, за исключением черной спины, которая появляется внизу (поскольку обходной путь в сообщении фиксирует только верхнее, левое и правое поля). – Marilia