根据Android中的屏幕/片段宽度隐藏TableLayout中的列

时间:2012-09-19 19:22:29

标签: android android-layout

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

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

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

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

1 个答案:

答案 0 :(得分:1)

我想,最简单的方法是为不同的屏幕分辨率创建不同的TableLayouts。在您的代码中,您将测试布局中是否有某个字段可用,如果是,则填写它。如果不是,那么您所使用的屏幕分辨率不具有该特定字段的列。对于不同的屏幕尺寸和分辨率,不同的布局是Android上推荐的方式。

加入: 您可以做的是编写自己的MyTableLayout,并确定动态列数。编写视图并实现“onLayout”和“onMeasure”并不难。这样,你将永远最合适。视图将接受行中的所有项目,并且只显示适合的项目。