Java ListView不是';t显示键盘时调整大小
我有一个显示ListView的活动。ListView中的项目中有EditText字段,因此当它们点击文本字段时,虚拟键盘会滑入视图。它覆盖了ListView,因此您无法看到键盘后面的项目 我已将该活动的清单配置为调整大小: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
<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正在正确调整大小。