Android - 分组布局和视图

时间:2012-12-09 18:18:36

标签: android android-layout android-ui

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

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

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

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

谢谢!

enter image description here

3 个答案:

答案 0 :(得分:1)

我认为你应该使用带有适配器的ListView来扩展自定义行。

对于行,我个人会使用1个父亲RelativeLayout,并直接将其中的所有孩子对齐。但是,如果您愿意,可以通过一些LinearLayouts来实现。

不仅以这种方式构建它使得制作布局相当容易,如果你每个人都需要用不同的或更多的数据(行)填充它,它也会让你有机会使List动态

答案 1 :(得分: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>

答案 2 :(得分:0)

您可以考虑GridLayout,其概述如下:http://android-developers.blogspot.com/2011/11/new-layout-widgets-space-and-gridlayout.html

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