当键盘出现adjustPan时,使ListView滚动

时间:2016-12-30 12:02:44

标签: android listview

在我的Android应用中,我有ListView,其中包含EditTexts。我必须使用adjustPan以便在长按后不会丢失文本,但我想在键盘出现时使ListView可滚动。

所以对于adjustPanadjustResize,它看起来像这样:1

所选文字位于键盘下方,listview不可滚动。

只有adjustPan,它看起来像这样:2

选定的文字是可见的,但是带有复制,剪切按钮的栏从布局可见部分向上滚动。

只有adjustResize一切都很完美,除了长按点击文字只被选中1秒然后失去焦点。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android.support.v7.appcompat="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_open_entry"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#d9d9d9"
tools:context="com.example.david.boom.openEntry">

<android.support.v7.widget.Toolbar
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android.support.v7.appcompat:title="Entry"
    android:background="@color/colorPrimary"
    android:id="@+id/toolbar"
    android:elevation="8dp"
    android.support.v7.appcompat:titleTextColor="#ffffff"
    android.support.v7.appcompat:navigationIcon="@drawable/ic_arrow_back_white_24dp"/>


<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:background="#d9d9d9"
    android:layout_below="@+id/toolbar"
    android:divider="@drawable/transparent_color"
    android:id="@+id/entry_list">
</ListView>

1 个答案:

答案 0 :(得分:0)

为此,您需要将windowSoftInputMode包含在您的清单文件中。例如:

尝试添加:

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

修改

然后尝试在scrollView中包含RelativeLayout。像这样:

<ScrollView android:id="@+id/ScrollView01"
xmlns:android="http://schemas.android.com/apk/res/android"
android:fillViewport="true" 
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout 
    android:orientation="vertical"
    android:layout_width="fill_parent" 
    android:weightSum="1.0" 
    android:layout_height="match_parent"
    android:focusable="true"
    android:focusableInTouchMode="true" 
    android:id="@+id/l_layout">

    <ListView android:"...">
    ...
    </ListView>



</RelativeLayout> 
</ScrollView>

希望这有帮助。