“ EditText”不会调整其位置,并且当键盘弹出时,“ ToolBar”内容将消失

时间:2019-02-19 05:03:34

标签: android

我正在尝试建立即时聊天界面。

正常: enter image description here

但是,当我单击EditText时,键盘将弹出,但不会随键盘一起向上推EditText,而且,工具栏中的内容也会消失。 像这样: enter image description here

我尝试设置android:windowSoftInputMode,但问题仍然存在。我认为问题可能是由于xml文件结构引起的。 这是我的xml文件结构:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout >
    <android.support.design.widget.AppBarLayout >
      <android.support.v7.widget.Toolbar >
        <TextView />
      </android.support.v7.widget.Toolbar>
    </android.support.design.widget.AppBarLayout>
    <LinearLayout>
        <android.support.v7.widget.RecyclerView />
        <com.loopeer.shadow.ShadowView>
            <LinearLayout>
                <ImageView/>
                <EditText/>
                <ImageView />
            </LinearLayout>
        </com.loopeer.shadow.ShadowView>
    </LinearLayout>
</android.support.design.widget.CoordinatorLayout>

Shadow View提供类似于CardView的阴影效果。感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

尝试此示例聊天ui布局,它应该可以很好地工作:

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

        <android.support.v7.widget.RecyclerView
            android:id="@+id/rvcommlist"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
           android:layout_above="@+id/view">
        </android.support.v7.widget.RecyclerView>

        <!-- A horizontal line between the chatbox and RecyclerView -->
        <View
            android:layout_width="0dp"
            android:id="@+id/view"
            android:layout_height="2dp"
            android:background="#dfdfdf"
            android:layout_above="@+id/layout_chatbox"
            android:layout_marginBottom="0dp"
            />

        <LinearLayout
            android:id="@+id/layout_chatbox"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentStart="true"
            android:layout_alignParentBottom="true"
            android:background="#ffffff"
            android:gravity="bottom"
            android:minHeight="48dp"
            android:orientation="horizontal">

            <EditText
                android:id="@+id/tvcomm"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginLeft="16dp"
                android:layout_marginRight="16dp"
                android:layout_weight="1"
                android:background="@android:color/transparent"
                android:hint="Enter message"
                android:maxLines="6" />

            <Button
                android:id="@+id/comment"
                android:layout_width="64dp"
                android:layout_height="48dp"
                android:layout_gravity="bottom"
                android:background="?attr/selectableItemBackground"
                android:clickable="true"
                android:gravity="center"
                android:text="SEND"
                android:textSize="14dp" />

        </LinearLayout>

    </RelativeLayout>