我想一些东西的在ListView,如能够使用ListAdapter,和项目选择等,但我不希望它的滚动型部分。我想要实现自己分开,以不同的方式(为什么或者我该怎么办这是不是真的这个问题的地步,所以请不要问“为什么”)。

有没有办法有一个ListView,这不是在滚动型或已滚动停用?

有帮助吗?

解决方案

一个ListView不处于ScrollView。一个ListView不instrinsically滚动。我不相信你可以禁用通过简单的API滚动。如果是这样,你的选择是要么继承ListView,并试图找到方法来超控滚动的行为,克隆ListView和消除滚动的行为,或者自己写AdapterView呈现的东西,你所希望的方式。

其他提示

另一种方式做,这是包装在任何自定义滚动解决你炮制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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top