[英]Full-screen tabular layout
我有12个基本相同的视图,要排列在一个覆盖整个屏幕的网格中。 根据设备的方向,我想使用3x4或4x3网格。
据我了解,该主题基本上有三种方法:
GridView
LinearLayout
实例 TableLayout
我想要一个布局
GridView
一样) LinearLayout
实例一样) GridView
“不能进一步滚动”效果) 默认情况下, GridView
会滚动并且不会填满屏幕,而LinearLayout
和TableLayout
不会自动适应方向更改。
目前,我正在使用具有禁用滚动功能的GridView
和自定义适配器 ,该适配器根据方向和容器的高度设置项目视图的最小高度,以强制填充屏幕。 这行得通,但感觉像是一个非常丑陋的hack。
根据方向动态构造嵌套的LinearLayout
实例也可能会起作用,尽管我没有尝试过。
这似乎是一个常见的目标( 1 , 2 , 3 , 4 ),但所有建议的解决方案或者是和我一样的hackish或不符合我的一些要求。
由于我是Android开发的新手,因此不确定是否丢失了某些东西。
实现此目标的最佳方法是什么?
我的目标是API级别8以上。
使用GridView
GridView
是一个小部件,当您想要以类似网格的方式显示具有更大数据集的数据时,将使用该小部件(因为GridView
的回收机制将提供比常规构建层次结构更高的性能)。 这不是您的情况,因为您希望从一开始就可以看到所有视图,从我的角度来看, GridView
的开销并不值得。
使用嵌套的LinearLayout实例
一个不错的选择,但要避免嵌套权重。 您可以改为使用两个LinearLayout
,将其在最长方向上的权重(纵向为纵向,横向为横向)放置在带有居中锚视图的RelativeLayout
。
使用TableLayout
另外一个选项。 将stretchColumns
选项用于TableRows
的宽度和weight
,以获取高度。
根据设备的方向,我想使用3x4或4x3网格。 实现此目标的最佳方法是什么?
没有最优的方法,可以使用上述两种解决方案,也可以自己设计布局 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.