Android ListView行有高度限制吗?

时间:2014-06-15 14:17:47

标签: android android-layout android-listview

我只是想知道,如果我有一个普通的列表视图并且我在其行中添加了一些组件,比如说,另一个列表,并将其可见性设置为已消失,然后再填充内部列表并使其可见,它是否会显示根据需要增长父行?

2 个答案:

答案 0 :(得分:0)

是的,它会增长Cell,Cell Layout本身通常是wrap_content所以它会增长。他们是Googles Android Team专门针对该主题的几个DevBytes。

查看此剧集:

DevBytes: ListView Expanding Cells Animation

答案 1 :(得分:0)

对于标题的字面含义:

是的,理论上的最大值是INT_MAX,因为它在ViewGroup.LayoutParams

中定义

另外需要提及的是,由于先前平台上View.MeasureSpec中的错误,最大有效值可能会更小。


对于预期的问题:

是的,它将重新布局UI,因为当这些事情发生变化时,将重新测量布局层次结构,通过调用View.requestLayout()然后调用View.onMeasure(),这通常会在子类中被覆盖图。

因此,如果将布局参数设置为wrap_content,则应自动增大或缩小。

米歇尔提到的DevBytes也值得关注。

另外要提到的是,通常你不应该嵌套ListView,因为实现使得这不可能(参见ListView.onMeasure()),因为这不是ListView的意图,其中包含视图回收功能。 (但是很久以前我用肮脏的黑客来解决这个限制:P)

对于优雅的方法,您可能希望使用LinearLayout,或者您可以查看LinearListView