Android GridView中的ListView是否不滚动?
我有一个显示项目的GridView,每个项目都是一个ListView 问题是我无法滚动ListView项,看起来GridView正在获取焦点或阻止它从ListView中移动 有解决办法吗 谢谢 ** 编辑: ** 这是我的活动布局Android GridView中的ListView是否不滚动?,android,android-listview,Android,Android Listview,我有一个显示项目的GridView,每个项目都是一个ListView 问题是我无法滚动ListView项,看起来GridView正在获取焦点或阻止它从ListView中移动 有解决办法吗 谢谢 ** 编辑: ** 这是我的活动布局 每个gridview项都具有以下布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res
每个gridview项都具有以下布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<ListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/list"
/>
</LinearLayout>
在列表视图中设置属性
android:scrollingCache=“true”
<ListView android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollingCache="true"
android:layout_weight="1" />
在可滚动的父视图中不能有可滚动的子视图。谷歌不推荐它。。。而且真的很乱 有人一直在尝试解决方法(看起来不太好),但我怀疑它是否对你有用。但是你无论如何都可以阅读它,看看你是否能让它为你工作 它不起作用的一个主要原因是可滚动视图处理触摸的方式。有一个名为
dispatchTouchEvent()
和onInterceptTouchEvent()
的方法,用于决定是拦截触摸事件还是将其传递给其子级。对于可滚动视图,它们将始终拦截“滑动”移动。所以它永远不会给你的孩子
您可以尝试修改它,但是如果您仔细想想,您如何知道您是在尝试滚动父对象还是在尝试滚动子对象?想象一下,如果你的一个可滚动的孩子最终占据了你屏幕的宽度,但你想滚动你的父母,你将如何管理
总结:
不推荐。。。。如果你真的坚持。。。然后继续编写自己的自定义视图来处理逻辑。但我向你保证,它不会很漂亮,几乎永远不会适用于所有用例。也不起作用,我相信它与聚焦性问题有关。我相信它对我有用。(在2.2.3 emulator EDK1.2上试用过)你能发布一些代码吗?我最终实现了自己的自定义视图
<ListView android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollingCache="true"
android:layout_weight="1" />