我基本上正在尝试实现这个设计原则(来自Google的Material Design): 因此,我创建了一个带有
LinearLayoutManager
的父RecyclerView
,然后在RecyclerView
适配器中,我放置了一个带有GridLayoutManager
的子RecyclerView
,用于“丰富媒体”部分(操作区域2)。一切都运行正常,除了一个问题:我将内部RecyclerView
网格设置为具有match_parent
宽度和wrap_content
高度,但它不会正确计算内容的大小,似乎将其保留为0,因此隐藏。如果我将子RecyclerView
设置为特定高度,则其中的项目将显示,但当然在底部被截断。
其他人似乎遇到了这个问题,但在他们的情况下,两者都有线性布局。(也请参见{{link4:“Khay”的答案在此处}}。)现在我的问题是,如何在自定义的
GridLayoutManager
中覆盖onMeasure
方法,就像链接问题中“pptang”在被接受的答案中所做的那样,而不是在自定义的LinearLayoutManager
中?我没有在这里发布我的代码,因为它与链接的代码基本相同,只是我需要为子RecyclerView
创建一个自定义的GridLayoutManager
,以便它能够按照“pptang”的答案正确地测量。
否则,有没有比使用第二个RecyclerView
内部的1个RecyclerView
更好的方法?只有一个RecyclerView
可以用上面的CardViews
列表和每个CardView
中唯一项目的网格填充活动/片段吗?
ViewPager
选项卡,一个包含3个父级CardView
,另一个可能有8个父级CardView
,还有一个包含大约5个父级CardView
。这些格子完全“开放”,因此没有内部滚动,只有父级CardView
可以垂直滚动。根据我的观察,将一个RecyclerView
放到另一个RecyclerView
中也会影响到工具栏的隐藏(CoodinatorLayout
),如果您尝试通过保持RecyclerView
网格来滚动,则工具栏不会隐藏,但仅当你在子RecyclerView
之外的地方按住时才会隐藏。 - inferKNOX