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