我有 12 个基本相同的视图,我想将它们排列在一个覆盖整个屏幕的网格中。根据设备的方向,我想使用 3x4 或 4x3 网格。
据我了解,这个主题基本上有三种方法:
- 用一个
GridView
- 使用嵌套
LinearLayout
实例 - 用一个
TableLayout
我想要一个布局
- 自动适应方向变化(就像
GridView
这样) - 使用所有可用的屏幕空间(就像嵌套
LinearLayout
实例一样) - 不允许滚动(并且没有“不能再滚动”的效果
GridView
) - 允许我在我的所有物品上强制使用相同的尺寸
默认情况下,GridView
具有滚动功能并且不会填满屏幕,而LinearLayout
不会TableLayout
自动适应方向变化。
目前我正在使用GridView
禁用滚动和自定义适配器,它根据方向和容器的高度设置项目视图的最小高度以强制填充屏幕。这可行,但感觉就像一个非常丑陋的黑客。
根据方向动态构建嵌套LinearLayout
实例也可能有效,尽管我没有尝试过。
这似乎是一个常见的目标(1 , 2 , 3 , 4),但所有建议的解决方案要么像我的一样老套,要么不满足我的一些要求。
由于我是 Android 开发的新手,我不确定我是否遗漏了一些东西。
实现这一点的最佳方式是什么?
我的目标是 API 8 级及以上。