我想要 ListView 中的一些好东西,例如能够使用 ListAdapter 和项目选择等,但我不想要其中的 ScrollView 部分。我想以不同的方式自己实现该部分(为什么或如何做到这一点并不是这个问题的重点,所以请不要问“为什么”)。
有没有办法让 ListView 不在 ScrollView 中或禁用滚动?
另一种方法是包裹ListView
在您制定的任何自定义滚动解决方案中。如果你简单地设置高度ListView
与所有行一样高(使用列表视图的LayoutParams
),那么它将像普通视图一样运行,并且无法滚动;因此您可以将其添加到另一个滚动视图。这种方法的困难在于你必须提前知道列表的高度,因此你必须知道每一行的高度。此外,这将同时创建所有行,因此您将无法利用视图回收功能。
如果您没有提前计算高度的简单方法,您可以欺骗ListView
通过覆盖为你做这件事onMeasure
并给它你自己的高度规格:
// Calculate height of the entire list by providing a very large
// height hint. But do not use the highest 2 bits of this integer;
// those are reserved for the MeasureSpec mode.
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)