首页 > 解决方案 > 可扩展的网格/布局,保持网格列

问题描述

我确信这存在,但由于某种原因,我要么没有寻找正确的术语,要么 Google-Fu 让我失望了。

在一个布局中,我有一个信息网格:

示例网格

现在忽略可怕的颜色,我想将它与可扩展的卡片视图结合使用,例如,只显示前三行(状态、卫星、颜色),然后如果点击,其余的会打开并被展示出来。(再次点击,它会反弹回前三名。)

在所有可扩展的控件中,他们都期望一个“标题”和一个“内容”,当折叠时,只显示“标题”。虽然这是一个选项,但我不想使用它,因为那时会有两个单独的网格控件,它们的列不匹配。

我可以通过在 onCreateView 期间添加代码来测量两列中的所有文本视图,获得最宽的文本视图并将其应用于所有文本视图,从而克服列不对齐的问题。但这似乎是一个更大的痛苦,并且在将来需要改变的情况下不是很有用。

我考虑过使用普通的 CardView,并在其上强制设置高度,剪裁卡片布局之外的任何内容,但由于行中的数据可能会发生变化,因此我需要在每次执行折叠/展开之前对其进行测量。

我考虑过隐藏多余的行 - 但是,据我所知,没有简单的方法可以访问整行并将其高度设置为“0dp”。此外,由于某些行需要隐藏 - 例如,如果用户正在查看的数据点没有“设置”,则标签 textview 和值 textview 都被隐藏。(同样,因为您似乎无法隐藏特定行。)

是否有一个控件 - 或一组控件 - 可以让我像我正在寻找的那样“扩展网格”,或者我是否需要为我的标签设置固定宽度并将网格分成两半?

标签: androidandroid-layoutgrid-layout

解决方案


推荐阅读