Java ListView不是';t显示键盘时调整大小

Java ListView不是';t显示键盘时调整大小,java,android,listview,keyboard,resize,Java,Android,Listview,Keyboard,Resize,我有一个显示ListView的活动。ListView中的项目中有EditText字段,因此当它们点击文本字段时,虚拟键盘会滑入视图。它覆盖了ListView,因此您无法看到键盘后面的项目 我已将该活动的清单配置为调整大小: <activity android:name=".StatisticalActivity" android:label="@string/app_name" android:theme="@andr

我有一个显示ListView的活动。ListView中的项目中有EditText字段,因此当它们点击文本字段时,虚拟键盘会滑入视图。它覆盖了ListView,因此您无法看到键盘后面的项目

我已将该活动的清单配置为调整大小:

<activity android:name=".StatisticalActivity"
                  android:label="@string/app_name"
                  android:theme="@android:style/Theme.NoTitleBar"
                  android:screenOrientation="portrait"
                  android:windowSoftInputMode="adjustResize"
                  >

。。但当显示键盘时,它不会调整大小

这是我的活动的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rootView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    >

    <RelativeLayout
        android:id="@+id/toolbar"
        android:layout_width="fill_parent"
        android:layout_height="40sp" android:paddingLeft="4dp" android:background="@drawable/toolbar_gradient" android:paddingRight="6dp">

        ...

    </RelativeLayout>

    <ListView
        android:id="@+id/tableView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#333"
    />
</LinearLayout>

...

我做错了什么?

如果使用WindowManager.LayoutParams.FLAG\u FULLSCREEN将“活动”设置为全屏,则视图的自动大小调整不起作用。因此,不幸的是,您最好不要使用全屏(即顶部的状态栏可见),此时调整大小将正常工作。

如果您使用WindowManager.LayoutParams.FLAG\u FULLSCREEN将活动设置为全屏,则视图的自动调整大小不起作用。因此,不幸的是,您最好不要使用全屏(即顶部的状态栏可见),此时调整大小将正常工作。

@Kenny Wyland:“ListView中的项目中有EditText字段”——我会避免这种情况。这在这种情况下以及其他许多情况下都不可行。不管单元格中有什么内容,列表视图都应该调整大小。@Kenny Wyland:对于用户的任何合理行数,都可以使用
ScrollView
LinearLayout
。例如,AOSP联系人应用程序就是这样做的——尽管谷歌在一些你可能不希望看到的地方使用了
ListView
(例如
PreferenceScreen
),但当你需要像“行”中的
EditText
这样的东西时,他们似乎倾向于
ScrollView
方法。这对于数百行来说效果不好,但我认为GUI设计在这里是错误的。理想情况下,
ListView
可以处理您的场景,但如果不能,我也不会感到惊讶。我处理的是任意长的表格数据。为了提高内存和处理效率,在这里使用ListView确实是正确的。说“不要那样做”不是一个有用的回答,也不能回答这个问题。@Kenny Wyland:“在这里使用ListView确实是提高内存和处理效率的正确方法。”——不,一个
AdapterView
确实是提高内存和处理效率的正确方法。
ListView
可能不是正确答案。对于“表格”内容,除非
GridView
恰好符合要求,否则您可能最适合滚动自己的
AdapterView
实现。根据我的Android经验(比你的略多),
ListView
EditText
成行是一种不常见的组合,也许是有原因的。@Kenny Wyland:“ListView中的项目中有EditText字段”——我会避免这种情况。这在这种情况下以及其他许多情况下都是不可行的。不管单元格中有什么内容,列表视图都应该调整大小。@Kenny Wyland:对于用户的任何合理行数,都可以使用
ScrollView
LinearLayout
。例如,AOSP联系人应用程序就是这样做的——尽管谷歌在一些你可能不希望看到的地方使用了
ListView
(例如
PreferenceScreen
),但当你需要像“行”中的
EditText
这样的东西时,他们似乎倾向于
ScrollView
方法。这对于数百行来说效果不好,但我认为GUI设计在这里是错误的。理想情况下,
ListView
可以处理您的场景,但如果不能,我也不会感到惊讶。我处理的是任意长的表格数据。为了提高内存和处理效率,在这里使用ListView确实是正确的。说“不要那样做”不是一个有用的回答,也不能回答这个问题。@Kenny Wyland:“在这里使用ListView确实是提高内存和处理效率的正确方法。”——不,一个
AdapterView
确实是提高内存和处理效率的正确方法。
ListView
可能不是正确答案。对于“表格”内容,除非
GridView
恰好符合要求,否则您可能最适合滚动自己的
AdapterView
实现。根据我的Android体验(比你的略多),
ListView
editText
成行是一种不常见的组合,也许是有原因的。就是这样!我确实将活动设置为全屏。删除这行代码修复了它,ListView正在正确调整大小。就是这样!我确实将活动设置为全屏。删除这行代码可以修复它,并且ListView正在正确调整大小。