Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android RecyclerView内容高度_Android_Height_Android Recyclerview - Fatal编程技术网

Android RecyclerView内容高度

Android RecyclerView内容高度,android,height,android-recyclerview,Android,Height,Android Recyclerview,有什么好方法可以获得RecyclerView中内容的高度吗?考虑到所有项目可能有不同的高度 在我的场景中,我使用的是LinearLayoutManager 我四处搜索,发现关于这个问题的结果出人意料地少。RecyclerView是一个视图组。您可以使用getChildAt/getChildCount获取视图。然后从视图中,可以调用getWidth/getHeight 如果您有ItemDecorators并且需要包括它们的大小,您可以使用LayoutManager的getdecordent方法。R

有什么好方法可以获得RecyclerView中内容的高度吗?考虑到所有项目可能有不同的高度

在我的场景中,我使用的是LinearLayoutManager


我四处搜索,发现关于这个问题的结果出人意料地少。

RecyclerView是一个
视图组。您可以使用
getChildAt
/
getChildCount
获取视图。然后从视图中,可以调用
getWidth
/
getHeight


如果您有ItemDecorators并且需要包括它们的大小,您可以使用
LayoutManager
getdecordent
方法。

RecyclerView.computeVerticalScrollRange
将给出一个估计值-它平均当前显示的行的高度,并将其乘以
getItemCount


如果方向是水平的,则计算水平滚动范围。

我用于试验视图。测量方法:

recycler.measure(View.MeasureSpec.makeMeasureSpec(recycler.width, View.MeasureSpec.EXACTLY), View.MeasureSpec.UNSPECIFIED)
val height = recycler.measuredHeight

如果您的项目足够简单(例如,具有固定高度),它应该可以工作。

考虑到RECYCLERView的性质,这不只是获得实际创建的子视图吗?假设我有100个项目,可能只有10个视图被膨胀和回收。如果你试图获得未布局项目的高度,你不能,因为它们没有布局。除了列出每一项之外,没有其他解决方案,这违背了使用RecyclerView的目的。但是RecylerView知道足够多的知识来正确布局滚动条,所以它必须知道一些关于它的内容高度的信息?它通过取当前视图的平均大小乘以adapter.Aha中的项目数来近似所有项目的总大小。酷。谢谢。此方法始终返回0