我正在考虑构建一个具有与图片中相同的网格布局的应用程序,但我无法弄清楚我应该使用什么布局。
GridView,或类似的东西?
可以使用 StaggeredGridView 。在 github 上查看以下 repos
https://github.com/maurycyw/StaggeredGridView
https://github.com/chrisjenx/StaggeredGridView/tree/master/demo
使用 LinearLayout 很简单:
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- Stack rows vertically -->
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<!-- First row, two items -->
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<!-- First item, 50% of width -->
<FooView android:id="@+id/foo1"
android:layout_width="0px"
android:layout_weight="1"
android:layout_height="wrap_content" >
<!-- Second item, 50% of width -->
<FooView android:id="@+id/foo2"
android:layout_width="0px"
android:layout_weight="1"
android:layout_height="wrap_content" >
</LinearLayout>
<!-- Next row, just one item -->
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<!-- Third item, 100% of width -->
<FooView android:id="@+id/foo2"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</LinearLayout>
<!-- And so on... -->
</LinearLayout>
</ScrollView>
显然,“FooView”的确切性质取决于您,装饰性边框、阴影等也是如此。在实践中,您希望以编程方式执行此操作,但这个静态 xml 布局向您展示了您所追求的。
GridLayout 也可以使用,但它仅在 4.0 及更高版本中可用,除非您想开始使用兼容性库。由于 LinearLayout 将完成这项工作,这就是我将使用的。RelativeLayout 可能也可以工作,但我自己从来没有让这该死的东西工作。
我不确定他们使用的是什么,但你可以使用 aGridLayout
或 a来达到相同的效果ListView
。