软键盘重叠EditText

时间:2015-06-02 23:39:41

标签: android

我的根布局是:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <include
        layout="@layout/toolbar" />

    <FrameLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</LinearLayout>

内容FrameLayout被替换为此布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:ignore="UnusedAttribute">

    <FrameLayout
        android:id="@+id/messages"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_above="@+id/messageLayout">

        <android.support.v7.widget.AppCompatTextView
            android:id="@+id/emptyView"
            android:text="@string/no_messages"
            android:textSize="18sp"
            android:textColor="?attr/colorPrimary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_gravity="center"
            android:visibility="gone"
            tools:visibility="visible"/>

        <af.kabuljan.android.ui.widget.EmptyRecyclerView
            android:id="@+id/recyclerView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingTop="4dp"
            android:background="@color/md_indigo_100"/>

        <ProgressBar
            android:id="@+id/progressView"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_gravity="center"
            android:visibility="gone"
            tools:visibility="visible"/>
    </FrameLayout>

    <RelativeLayout
        android:id="@+id/messageLayout"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:layout_alignParentBottom="true"
        android:elevation="8dp">

        <ImageView
            android:id="@+id/btnAttach"
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:src="@drawable/ic_attachment"
            android:tint="@color/primary_dark"
            android:padding="4dp"
            android:layout_alignParentLeft="true"/>

        <android.support.v7.widget.AppCompatEditText
            android:id="@+id/message"
            android:hint="@string/enterMessage"
            android:textSize="18sp"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_toRightOf="@+id/btnAttach"
            android:layout_toLeftOf="@+id/btnSend"
            android:background="#00000000"
            android:inputType="textShortMessage|textAutoCorrect|textCapSentences|textMultiLine"
            android:imeOptions="actionSend|flagNoEnterAction"
            android:padding="4dp"
            android:gravity="center_vertical"/>

        <android.support.v7.widget.AppCompatButton
            android:id="@+id/btnSend"
            android:text="@string/send"
            android:textColor="@android:color/white"
            android:background="@drawable/send_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_margin="4dp"
            app:elevation="4dp"/>
    </RelativeLayout>
</RelativeLayout>

假设这是一个消息传递应用程序,此窗口有一个带有可以滚动的气泡消息的recyclerView,但底部输入应始终位于底部。问题是当我点击EditText时 - 软键盘总是重叠这个EditText。我应该怎么做才能调整整个容器(工具栏+ recyclerView +底部输入)的大小以在底部布置软键盘?

尝试adjustResize - 没有结果。 我附上了2个截图。第1名 - 错误,第2名 - 正确。

enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

是的,您使用adjustResize处于正确的轨道上,这就是您应该使用软键盘指定所需的活动布局行为。

您尝试了哪种设置,是否有任何影响?

文档在这里:https://developer.android.com/guide/topics/manifest/activity-element.html#wsoft