ListView项隐藏在EditText后面。需要像聊天活动一样的whatsapp

时间:2015-03-20 11:33:10

标签: android listview android-listview whatsapp

我在布局实施方面遇到了麻烦。每当我点击编辑文本时,软输入键盘就会出现并隐藏列表视图项目,我需要的是每当弹出软键盘并且列表视图的最后一项是可见的时,它应该被带到编辑文本的上方,如果它不可见,列表应保持原样(与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>

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

2 个答案:

答案 0 :(得分:1)

得到解决方案......

mListView.setTransctiptMode(ListView.TRANSCRIPT_MODE_NORMAL);

做了诀窍:))

答案 1 :(得分:0)

尝试使用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>