【发布时间】:2017-01-16 13:54:54
【问题描述】:
我基本上是在尝试实现这个设计原则(from Google's Material Design):
因此,我用LinearLayoutManager 创建了一个父RecyclerView,然后在RecyclerView 适配器中,我将子RecyclerView 和GridLayoutManager 放在“富媒体”部分(行动区2) .一切正常,除了我将内部RecyclerView 网格设置为具有match_parent 宽度和wrap_content 高度,但它不会正确计算内容的大小,似乎将其保留在0 & 因此隐藏。如果我将孩子RecyclerView 设置为特定高度,则项目会显示在其中,但当然会在底部被切断。
其他人似乎遇到过这个问题,but in their case, both have linear layouts。 (另见"Khay's" answer here。)
现在我的问题是,如何覆盖onMeasure 方法,就像“pptang”在上面链接问题的已接受答案中所做的那样,但在自定义GridLayoutManager 而不是自定义LinearLayoutManager 中?我没有在这里发布我的代码,因为它与链接的代码基本相同,只是我需要为孩子RecyclerView 制作一个自定义GridLayoutManager,以便它正确测量为“pptang”的答案状态。
否则,有没有比在第二个 RecyclerView 中使用 1 个 RecyclerView 更好的方法?只有 1 个 RecyclerView 可以同时使用上述CardViews 的列表和每个CardView 中的唯一项目网格来填充活动/片段吗?
【问题讨论】:
-
根据材料设计指南“将补充动作限制为两个动作”。您要在父列表中添加多少项?滚动将如何工作?网格和列表都使用垂直滚动?
-
我想要几个
ViewPager标签;一个有 3 个父CardViews,另一个可能有 8 个父CardViews,另一个有大约 5 个父CardViews。目的是让网格完全“打开”,因此没有内部滚动,只有父CardViews才能垂直滚动。根据我所见,将一个RecyclerView放在另一个内部也会干扰工具栏隐藏(CoodinatorLayout),如果您尝试通过按住RecyclerView网格进行滚动,工具栏不会隐藏,而只会隐藏抱着孩子外面的某个地方时隐藏RecyclerViews -
我想我可能已经偏离了你实际询问@masp 的内容。对不起。在个人
CardViews中,我只想在顶部放置标题和图标,在中心放置网格,并使用“扩展器”来隐藏一些支持文本。可能还赋予Cardview's标题部分隐藏/折叠和显示/展开网格的能力,例如ExpandableListView。 -
您说“目的是让网格完全“打开”,因此,没有内部滚动,只有父 CardViews 垂直滚动。”这意味着您不需要回收站视图中的回收站视图。一个 Gridlayout 管理器就足够了。我还没有尝试过@Gustavo 的建议,所以我不知道它是否会涵盖您所要求的所有内容,但它的方向是正确的。
-
我没有遵循你的思路,@masp。我使用了与@Gustavo 建议的方法类似的方法(请参阅我的评论中的链接),但它给出的结果与谷歌插图完全不同。我不想在另一个里面使用
RecyclerView,但是我看不到任何其他方法可以达到上述效果。我没有提到ListView/GridView/etc,因为RecyclerView替换了它们,那么还有其他方法吗?你如何让 1 个RecyclerView列出CardViews并在每个CardViews中动态填充一个网格?
标签: android android-recyclerview material-design android-cardview gridlayoutmanager