Показывать клавиатуру как Whatsapp при записи видео - PullRequest
0 голосов
/ 11 июля 2019

Я ищу лучший способ показать клавиатуру, как Whastapp, когда я записал видео.Я показываю вам несколько фотографий с тем, что я хочу получить, и в чем моя проблема:

Вы можете видеть, что у Whatsapp есть EditText поверх клавиатуры, но другие элементы находятся в том же месте

Прежде чем сделать клик на EditText в моем приложении

EditText находится под клавиатурой и, как вы можете видеть, макет на заднем плане (TextureView) имеетбыло перемещено вверх

Я ищу способ оставить все элементы в одном и том же месте, когда клавиатура открыта, но текст EditText, который вызывает клавиатуру, будет над ней.Любая идея?

Спасибо.

Редактировать с частью моего кода XML:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/flMain"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextureView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/surface_view" />

    <android.support.v7.widget.CardView
        style="@style/CardViewTheme"
        android:id="@+id/cardViewMessage"
        android:layout_width="match_parent"
        android:minHeight="50dp"
        android:layout_gravity="right|bottom"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="56dp"
        android:layout_marginBottom="4dp"
        android:translationZ="1dp"
        android:visibility="gone"
        app:cardCornerRadius="20dp">

        <LinearLayout
            android:id="@+id/layoutMessage"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <EditText
                android:id="@+id/txtMessage"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="6dp"
                android:layout_marginStart="6dp"
                android:layout_marginTop="6dp"
                android:layout_marginBottom="6dp"
                android:layout_weight="1"
                android:background="@null"
                android:hint="Type a message"
                android:imeOptions="actionSend"
                android:inputType="textCapSentences|textMultiLine"
                android:maxLines="6"
                android:scrollbars="vertical"
                android:textColorHint="#B3A8A8A8" />

        </LinearLayout>
    </android.support.v7.widget.CardView>
</FrameLayout>

1 Ответ

0 голосов
/ 11 июля 2019

Вам необходимо установить windowSoftInputMode как adjustPan.

<activity android:windowSoftInputMode="adjustResize">

AdjustPan

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

...