2

在此处输入图像描述

在这个例子中,#4 和#6 块被移动到下一行,因为当前行上没有足够的空间供它们使用。它与 HTML 中的块元素基本相同,具有 CSS 属性,例如“display: block; float: left;”。让我们以我想以这种方式在屏幕上放置图像的情况为例。如何实施?

4

3 回答 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 回答