1

我需要一些关于如何最好地在 Android 中实现 UI 的建议。

我想要一个容器列表。每个容器有 7 个项目,如下所示。项目 5-7 是具有两个文本元素的子容器。

我在想一个LinearLayout包含RelativeLayouts. 这很清楚。至于如何在 中布置元素RelativeLayout,我不太确定。

关于如何切片的任何建议?将布局和视图组合在一起的最有效方法是什么?

谢谢!

在此处输入图像描述

4

3 回答 3

1

我认为你应该使用 ListView 和一个扩展自定义行的适配器。

对于我个人会使用 1 个父级 RelativeLayout 的行,并且直接将我的所有子级对齐在其中。但如果您更喜欢这些,则可以使用一些 LinearLayouts 来实现。

以这种方式构建它不仅可以使布局变得相当容易,如果您每个人都需要使用不同或更多数据(行)填充它,它还可以让您有机会使列表动态化

于 2012-12-09T18:50:04.313 回答
0

我还没有测试过这段代码,我知道它看起来有点混乱,但我个人认为这是我个人会尝试的,因为我曾经写过一个具有几乎相似布局的自定义 ListView。

<RelativeLayout>
<TextView> //position at top
    Lorem ipsum dolor sit amet, consectetur adipisicing...
</TextView>
<TableLayout> //stretchcolumns = 2 && position at bottom
    <TableRow>
        <RelativeLayout>
            <TextView>
                Lorem Ipsum //position at top
            </TextView>
            <ImageView>
                icon    //position to left
            </ImageView>
            <TextView>
                Lorem Ipsum //position to right
            </TextView>
        <RelativeLayout>
    </TableRow>
    <TableRow>
        <TableLayout> //stretchcolumns = 3
            <TableRow> //give all children a weight of 1
                <RelativeLayout>
                    <TextView>
                        1234 //position at top
                    </TextView>
                    <TextView>
                        Lorem Ipsum //position at bottom
                    </TextView>
                </RelativeLayout>
                <RelativeLayout>
                    <TextView>
                        1234 //position at top
                    </TextView>
                    <TextView>
                        Lorem Ipsum //position at bottom
                    </TextView>
                </RelativeLayout>
                <RelativeLayout>
                    <TextView>
                        1234 //position at top
                    </TextView>
                    <TextView>
                        Lorem Ipsum //position at bottom
                    </TextView>
                </RelativeLayout>
            </TableRow>
        </TableLayout>
    </TableRow>
</TableLayout></RelativeLayout>
于 2012-12-09T18:41:36.133 回答
0

您可能会考虑GridLayout,这里介绍了它的概述:http ://android-developers.blogspot.com/2011/11/new-layout-widgets-space-and-gridlayout.html

它是在 API 级别 14 (Android 4.0) 中引入的,但作为 Android 支持库的一部分,可以使用向下兼容到 API 级别 7 的向后移植。

于 2012-12-09T18:42:03.683 回答