在这个例子中,#4 和#6 块被移动到下一行,因为当前行上没有足够的空间供它们使用。它与 HTML 中的块元素基本相同,具有 CSS 属性,例如“display: block; float: left;”。让我们以我想以这种方式在屏幕上放置图像的情况为例。如何实施?
问问题
713 次
3 回答
2
如果我没记错的话,有一种叫做 gridlayout 视图的东西,我想这就是你要找的东西:
http://developer.android.com/reference/android/widget/GridLayout.html
编辑:也有对此的兼容性支持。
于 2013-08-06T12:56:14.443 回答
2
GridLayout
最接近,但它将其子项的大小调整为相同的大小,因此它不适用于您显示的示例图像。如果您只是在谈论一致的图像/按钮/其他网格,那么它非常适合。
另一方面,有一个第三方解决方案:FlowLayout。
它基于 a LinearLayout
,因此您只需将其设置为水平方向并添加您喜欢的所有元素。它会在应该的时候流到下一行,不需要自己进行测量/调整。
注意:我已经有一段时间没有对此进行测试了,所以我不确定它在最新 API 上的表现如何。我最后一次使用它是用于 Gingerbread 应用程序,当时它运行良好。
于 2013-08-06T14:02:10.877 回答
1
使用RelativeLayout
和使用android:layout_toRightOf
属性,来模拟这一点。
关于环绕行为,您可能需要扩展View
子类的类,特别是以onLayout
编程方式切换它是到theRightOf
还是below
它的前一个元素的函数。
也许是这样的,psedo:
protected void onLayout (boolean changed, int left, int top, int right, int bottom) {
if (right < 0) {
# toggle to below and maybe parent left
}
于 2013-08-06T12:57:37.647 回答