录制视频时显示类似Whatsapp的键盘

时间:2019-07-11 16:16:20

标签: java android layout keyboard

当我录制视频时,我正在寻找一种更好的方式来显示类似Whastapp的键盘。我向您展示了一些我想要得到的图片以及我的问题所在:

You can see like Whatsapp has the EditText over the keyboard, but the other elements are in the same place

Before to make click in EditText in my app

EditText is under keyboard and like you can see, the layout in the background (a TextureView) has been moved to up

我正在寻找一种方法,当键盘打开时,将所有元素保留在同一位置,但是调用键盘的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 :(得分:0)

您需要将windowSoftInputMode设置为adjustPan

<activity android:windowSoftInputMode="adjustResize">
  

adjustPan

     

活动的主窗口未调整大小以为软键盘腾出空间。而是,窗口的内容会自动平移,以使当前焦点不会被键盘遮挡,并且用户始终可以看到他们正在键入的内容。通常,这不如调整大小那么可取,因为用户可能需要关闭软键盘才能到达窗口并与模糊的部分进行交互。