有没有什么好方法可以获得RecyclerView内容的高度?考虑到所有项目可能有不同的高度。
在我的场景中,我使用的是LinearLayoutManager。
我四处搜寻,发现这个问题的结果令人惊讶。
答案 0 :(得分:39)
RecyclerView.computeVerticalScrollRange
会给出估算值 - 它会平均当前显示的行的高度,并将其乘以getItemCount
的结果
computeHorizontalScrollRange
表示宽度。
答案 1 :(得分:15)
RecyclerView是ViewGroup
。您可以使用getChildAt
/ getChildCount
来获取观看次数。然后,从视图中,您可以致电getWidth
/ getHeight
。
如果您有ItemDecorators并且需要获得包含它们的大小,则可以使用LayoutManager
的{{1}}方法。
答案 2 :(得分:2)
我用来试验View.measure方法:
recycler.measure(View.MeasureSpec.makeMeasureSpec(recycler.width, View.MeasureSpec.EXACTLY), View.MeasureSpec.UNSPECIFIED)
val height = recycler.measuredHeight
如果您的物品足够简单(例如固定高度),则应该可以使用。