клавиатура с панелью навигации перемещается вверх по рамке - PullRequest
0 голосов
/ 27 февраля 2019

проблема возникает только при использовании полноэкранного режима (samsung galaxy s8), когда клавиатура открыта, структура кадра вынуждена двигаться вверх.

        <activity ...
        android:windowSoftInputMode="adjustPan">

и в этом упражнении мы используем такую ​​иерархию:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/transparent"
android:gravity="center"
android:orientation="vertical">

<FrameLayout
    android:id="@+id/actHomeBottomContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentBottom="true"
    android:background="@color/white"
    android:foregroundGravity="top" />

<FrameLayout
    android:id="@+id/actHomeTopContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorAccent"
    android:elevation="@dimen/grid_size"
    android:focusable="true"
    android:focusableInTouchMode="true" />

<ImageView
    android:id="@+id/actHomeLogo"
    android:layout_width="wrap_content"
    android:layout_height="@dimen/grid_size_8x"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_margin="@dimen/grid_size_2x"
    android:elevation="@dimen/grid_size"
    android:src="@drawable/img_tbc_logo"
    android:visibility="gone" />

представление изображения сохраняет то же место, но

actHomeTopContainer

начинает перемещаться вверх и вниз на клавиатуре Hide / Showдействия.клавиатура показана из

"actHomeBottomContainer"

также, перед этим мы делаем анимацию - перевод Y

   actHomeTopContainer.animate().translationY(-1 * translateYSize).start()

На самом деле я не знаюКак самсунг выбирает вид, чтобы двигаться вверх.

1 Ответ

0 голосов
/ 27 февраля 2019

Вместо использования adjustPan

<activity ...
    android:windowSoftInputMode="adjustPan">

Вы можете использовать adjustNothing

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

Поскольку при использовании adjustPan содержимое окна автоматически панорамируется так,что текущий фокус никогда не скрывается клавиатурой, и пользователи всегда могут видеть, что они печатают.

...