0

我有一个ListView带有一个相对布局,EditText它下面包含一个。

<ListView
    android:id="@+id/listView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:divider="@color/transparent"
    android:dividerHeight="10sp"
    android:background="@color/transparent"
    android:scrollbars="none"
    android:stackFromBottom="false"
    android:transcriptMode="normal">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <EditText
        android:id="@+id/chatInput"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:focusable="true"
        android:inputType="textMultiLine"
        android:lines="2"
        android:maxLines="5"
        android:singleLine="false"
        android:scrollbars="vertical"
        android:focusableInTouchMode="true"
        style="@style/NomadlyTheme.EditText"
        android:hint="Enter text here"
        android:layout_weight="0.9"
        android:textColor="@color/black"/>
</RelativeLayout>

当我单击EditText并显示软输入时,我希望ListView至少从底部显示与键盘出现之前显示的相同项目:

软输入前:

 __________ 
|    7     |
|    8     |
|    9     |  <- ListView
|    10    |
|____11____|
|__________|  <- EditText

软输入后:

 __________
|    9     |
|    10    |
|____11____|
|__________|
| Keyboard |
|__________|

现在,当 的最后一个元素ListView可见时,就会发生上述情况。但是当只有中间元素可见时,会发生这种情况:

软输入前:

 __________ 
|    3     |
|    4     |
|    5     |  <- ListView
|    6     |
|____7_____|
|__________|  <- EditText

软输入后:

 __________
|    3     |
|    4     |
|____5_____|
|__________|
| Keyboard |
|__________|

我已经windowSoftInputMode=adjustResize在我的清单中设置了这个活动。请告诉我如何让项目向上滚动。

4

0 回答 0