【发布时间】:2015-04-07 20:51:53
【问题描述】:
有什么好的方法可以获取 RecyclerView 中内容的高度吗?考虑到所有项目可能有不同的高度。
在我的场景中,我使用的是 LinearLayoutManager。
我四处搜索,发现这个问题的结果出奇的少。
【问题讨论】:
标签: android height android-recyclerview
有什么好的方法可以获取 RecyclerView 中内容的高度吗?考虑到所有项目可能有不同的高度。
在我的场景中,我使用的是 LinearLayoutManager。
我四处搜索,发现这个问题的结果出奇的少。
【问题讨论】:
标签: android height android-recyclerview
RecyclerView.computeVerticalScrollRange 将给出一个估计值 - 它平均当前显示的行的高度,并将其乘以 getItemCount 的结果
computeHorizontalScrollRange 表示宽度,如果您的方向是水平的。
【讨论】:
RecyclerView 是一个ViewGroup。您可以使用getChildAt / getChildCount 来获取视图。然后从视图上可以调用getWidth/getHeight。
如果您有 ItemDecorators 并且需要获取包含它们的尺寸,您可以使用 LayoutManager 的 getDecorated<xxx> 方法。
【讨论】:
我用来试验 View.measure 方法:
recycler.measure(View.MeasureSpec.makeMeasureSpec(recycler.width, View.MeasureSpec.EXACTLY), View.MeasureSpec.UNSPECIFIED)
val height = recycler.measuredHeight
如果您的项目足够简单(例如具有固定高度),它应该可以工作。
【讨论】: