键盘隐藏ListView内容

时间:2012-06-30 21:03:42

标签: android android-layout android-widget

我看不到键盘可见时ListView的前几行的内容。

我花了一天时间尝试各种布局代码以及我自己来解决这个问题,我现在更多地了解这个问题,以帮助有人帮我解决。

问题是,如果我将listview(或其容器)的高度指定为fill_parent,那么就是让android认为listview的底部(屏幕底部)是键盘上方显示的部分,即使目前还没有实际内容可供展示。出于某种原因,我不能将事件scoll直到我的列表内容的开头。指定仅包装内容只会显示一个小区域,按预期显示列表。

这是我最新的布局代码(所有尝试产生同样的问题)

 <RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:id="@+id/RelativeLayoutchat"
 >
<LinearLayout
android:orientation="horizontal"
android:gravity ="clip_horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true">
</LinearLayout>
<LinearLayout  android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<ListView
    android:id="@+id/MessagesListView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:transcriptMode="alwaysScroll"
    android:divider="#000000"
    android:clickable="false"
    android:layout_weight="9"
    android:cacheColorHint="#00000000"/>
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_weight="1"
    style="@android:style/ButtonBar"
    android:gravity="center"
    android:paddingLeft="3dip"
    android:paddingTop="3dip"
    android:paddingRight="3dip">
    <EditText
        android:id="@+id/msgBox"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:maxLines="5"
        android:enabled="true"
        android:textSize="17sp"
        android:maxLength="150"/>
    <Button
        android:id="@+id/sendbutton"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="send"
        android:layout_weight="4"/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,并通过以下代码解决了这个问题。

您活动中的

mylistview.setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL);
mylistview.setStackFromBottom(true);

或在xml文件中

android:stackFromBottom="true"
    android:transcriptMode="normal"

并为清单文件中的活动保留 adjustResize

<activity .... android:windowSoftInputMode="stateHidden|adjustResize" ..../>

来源:Push Listview when keyboard appears without adjustPan