ListView 项目隐藏在 EditText 后面。需要 whatsapp 喜欢聊天 activity

ListView items hide behind the EditText. Need whatsapp like chat activity

我在实现布局时遇到问题。每当我单击编辑文本时,软输入键盘就会出现并隐藏列表视图项,我需要的是每当弹出软键盘并且如果列表视图的最后一项可见时,它应该位于编辑文本上方,如果它不可见,则列表应保持原样(与 whatsapp 中的方式相同),这是我的布局代码

<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"
android:background="@color/bg_other" >

<include
    android:id="@+id/actionbar_toolbar"
    layout="@layout/toolbar" />

<ListView
    android:id="@+id/lv_listView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/line_separator"
    android:layout_below="@+id/actionbar_toolbar"
    android:clipToPadding="false"
    android:divider="@android:color/transparent"
    android:dividerHeight="12dp"
    android:paddingBottom="12dp"
    android:scrollbars="none"
    android:stackFromBottom="true" >
</ListView>

<View 
    android:id="@+id/line_separator"
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_above="@+id/ll_editText"
    android:background="#1F000000"/>

<LinearLayout
    android:id="@+id/ll_editText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:orientation="horizontal"
    android:padding="8dp" >

    <EditText
        android:id="@+id/et_editText"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:hint="@string/message_hint"
        android:textCursorDrawable="@drawable/cursor_color"
        android:maxLines="4" />

    <View 
        android:layout_width="1dp"
        android:layout_height="match_parent"
        android:layout_marginLeft="5dp"
        android:background="#1F000000"/>

    <Button
        android:id="@+id/btn_Button_send"
        android:layout_width="48dp"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        android:text="@string/cherry_send"
        android:textColor="@color/orange"
        android:textSize="24sp"
        android:background="@android:color/transparent" />
</LinearLayout>

<Button
    android:id="@+id/btn_Button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/ll_editText"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="5dp"
    android:layout_marginRight="5dp"
    android:background="#A0000000"
    android:paddingLeft="2dp"
    android:paddingRight="2dp"
    android:text="2 new messages"
    android:textColor="@android:color/white"
    android:textSize="14sp"
    android:visibility="gone" />

</RelativeLayout>

我在 activity 的清单中使用 window:softInputMode 作为 adjustResize,因为在某些情况下使用 adjustPan 会将 editText 隐藏在软键盘后面。 请建议我如何实现这一目标。提前致谢

像这样尝试 LinearLayou:

<LinearLayout 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"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/lv_listView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:clipToPadding="false"
        android:divider="@android:color/transparent"
        android:dividerHeight="12dp"
        android:paddingBottom="12dp"
        android:scrollbars="none"
        android:stackFromBottom="true" >
    </ListView>

    <View
        android:id="@+id/line_separator"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:background="#1F000000" />

    <LinearLayout
        android:id="@+id/ll_editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="8dp" >

        <EditText
            android:id="@+id/et_editText"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:hint="text"
            android:maxLines="4" />

        <View
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="5dp"
            android:background="#1F000000" />

        <Button
            android:id="@+id/btn_Button_send"
            android:layout_width="48dp"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:background="@android:color/transparent"
            android:textSize="24sp" />
    </LinearLayout>

    <Button
        android:id="@+id/btn_Button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp"
        android:layout_marginRight="5dp"
        android:background="#A0000000"
        android:paddingLeft="2dp"
        android:paddingRight="2dp"
        android:text="2 new messages"
        android:textColor="@android:color/white"
        android:textSize="14sp"
        android:visibility="gone" />

</LinearLayout>

找到解决方案....

mListView.setTransctiptMode(ListView.TRANSCRIPT_MODE_NORMAL);

成功了:)