Как избежать перемещения панели инструментов, когда клавиатура открыта в полноэкранном режиме? - PullRequest
0 голосов
/ 08 января 2019

В моем приложении, когда вызывается клавиатура, панель инструментов перемещается вверх. Как предотвратить перемещение панели инструментов вверх?

Вот код, позволяющий сделать упражнение полноэкранным:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE);

Компоновка:

<RelativeLayout xmlns:android=".."
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">
    <android.support.design.widget.AppBarLayout
        android:layout_alignParentTop="true" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:background="@drawable/toolbar_background">

        <include layout="@layout/layout_toolbar" />
    </android.support.design.widget.AppBarLayout>

    <ScrollView.......>

    <RelativeLayout......>

    <EditText....><!--There are multiple EditTexts here.-->

</RelativeLayout>

Ответы [ 3 ]

0 голосов
/ 08 января 2019

Добавьте эту строку в манифестах для Activity

android:windowSoftInputMode="adjustResize"
0 голосов
/ 08 января 2019

Вы можете использовать CollapsingToolBarLayout, если он соответствует требованиям вашего пользовательского интерфейса внутри AppBarLayout.

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.design.widget.CollapsingToolbarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.v7.widget.Toolbar 
           xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:ripple="http://schemas.android.com/apk/res-auto"
           android:id="@+id/tv_toolbar"
           android:layout_width="match_parent"
           android:layout_height="50dp"
           android:background="#fff"
           ripple:contentInsetStart="0dp">
        </android.support.v7.widget.Toolbar>

    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
0 голосов
/ 08 января 2019

добавить android:fitsSystemWindows="true" в корневой макет панели инструментов

В большинстве случаев вашему приложению не нужно рисовать под строкой состояния или панель навигации, но если вы делаете: вы должны убедиться, что интерактивный элементы (например, кнопки) не скрыты под ними. Вот что поведение андроида по умолчанию: fitsSystemWindows = "true" атрибут дает вам: он устанавливает заполнение вида, чтобы обеспечить содержание не перекрывайте системные окна.

Несколько вещей, которые нужно иметь в виду:

fitsSystemWindows сначала применяется на глубину - порядок имеет значение: это Первый вид, который потребляет вкладыши, которые имеют значение

из https://medium.com/androiddevelopers/why-would-i-want-to-fitssystemwindows-4e26d9ce1eec

в основном вы говорите панели инструментов не двигаться и оставаться сверху, а вместо этого перемещать виды под ней вверх под ней

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...