在 Android 中根据屏幕/片段宽度隐藏表格布局中的列



我希望我的Android应用程序能够流畅地适应不同的屏幕分辨率和旋转(横向/纵向方向变化)。到目前为止,按照建议使用片段和几个布局文件完成了这项工作。

现在,我正在使用 TableLayout 以表格格式显示数据库查询结果。

为了使此布局适应不同的屏幕/布局宽度,我想完全隐藏列(首先隐藏最不重要的列),直到有足够的空间容纳可用空间中的剩余内容。理想情况下,单元格内容不会换行,列宽将固定为完全显示其内容所需的最小值。

请注意最后一部分:由于列宽是其内容的函数,并且在设计时是未知的,因此布局必须在运行时进行调整以适应可用空间,并且不允许缩小列宽。

我想最简单的方法是为不同的屏幕分辨率创建不同的 TableLayout。在您的代码中,您将测试某个字段在布局中是否可用,如果可用,则填充它。如果不是,则表示您使用的是屏幕分辨率没有该特定字段列的设备上。无论如何,在Android上为不同的屏幕尺寸和分辨率使用不同的布局是推荐的方法。

添加:您可以做的是编写自己的MyTableLayout,并动态确定列数。编写视图并实现"onLayout"和"onMeasure"并不难。这样,您将始终拥有最合适的人选。视图将接受行中的所有项目,并且仅显示适合的项目。

最新更新