Android XML布局 - 包含行和一个底行的两列

时间:2011-03-09 20:51:20

标签: android xml layout row

我正在尝试创建一个包含行的两列布局,并在底部创建一行。到目前为止,我已经实现了两列中包含行,但似乎无法弄清楚如何让底行显示。以下是我的代码,注释掉了我是如何添加底行的

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tracker_id"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background"
android:padding="10dp">

<!-- <ScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="60dip"> -->

<LinearLayout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:gravity="center_horizontal"
    android:background="#ffffff">
    <ImageView 
        android:id="@+id/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="6dip"
        android:src="@drawable/ic" />
    <Button 
        android:id="@+id/stop_button"
        android:text="@string/stop"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_centerInParent="true"
        android:paddingLeft="50dp"
        android:paddingRight="50dp"
        android:enabled="true" />
    <Button 
        android:id="@+id/pause_button"
        android:text="@string/pause"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_centerInParent="true"
        android:paddingLeft="50dp"
        android:paddingRight="50dp"
        android:enabled="true" />
    <ImageView 
        android:id="@+id/icon2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="6dip"
        android:src="@drawable/ic2" />
</LinearLayout>

<LinearLayout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:gravity="center_horizontal"
    android:background="#000000">
    <TextView
        android:text="some text"
        android:textSize="15pt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#ffffff"
        android:gravity="right" />
    <TextView
        android:text="more text"
        android:textSize="15pt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#ffffff"
        android:gravity="right" />
</LinearLayout>

<!-- </ScrollView>

<RelativeLayout

    android:layout_width="fill_parent"
    android:layout_height="60dip"
    android:layout_marginTop="-55dp"
    >
    <TextView
        android:text="Bottom"
        android:textSize="15pt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="#ffffff" />
</RelativeLayout> -->

</LinearLayout>

贝娄是我想要实现的布局

---------------------
|  icon       text  |
|  button     text  |
|  button     text  |
|  icon       text  |
|                   |
|  more more text   |
---------------------

4 个答案:

答案 0 :(得分:3)

您需要将所有内容都包含在第三个LinearLayout中,其中orientation =“vertical”,并将TextView添加到其底部。

在伪布局中:

<LinearLayout vertical>
    <LinearLayout horizontal>
        <LinearLayout vertical>
            ... column 1 ...
        </LinearLayout>
        <LinearLayout vertical>
            ... column 2 ...
        </LinearLayout>
    </LinearLayout>
    <TextView/>
</LinearLayout>

这是因为您希望TextView 垂直位于列的下方。

答案 1 :(得分:1)

我认为马特最好地回答了你的问题,特别是如果你只是想快速解决问题。

正如B Mac所提到的,你可能会发现TableLayout很有用,这里有两个你可能会觉得有用的链接。

  1. Layout optimization: Relative Layout
  2. Debugging and Profiling User Interfaces

答案 2 :(得分:0)

您是否尝试将TableLayout而不是LinearLayout用于构成网格的图标/按钮/文本字段。您可以将它放置在两列中,但需要很多行。 (如果这不是静态排列,并且您想要在添加更多内容时滚动图标/按钮/文本字段,您可能需要考虑具有用户定义的布局视图的ListView布局...看起来像你这里有两个,一个带有按钮,水平放置文字,另一个带有水平放置的图标和文字。

然后,使用TableLayout下面的水平LinearLayout作为最后一行,其宽度尺寸与TableLayout定义相同(看起来你希望它跨越你所做的两列)?

答案 3 :(得分:0)

试试这个:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tracker_id"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp">
<!-- <ScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="60dip"> -->
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Education/Health"
                android:textColor="#FE9A2E"/>
            <TextView
                android:id="@+id/tot_val"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="$60"
                android:textColor="#FE9A2E"
                android:layout_marginLeft="5dp"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <TableLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
                <TableRow
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content">
                    <TextView
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:text="Frequency"
                        android:textColor="#000"
                        android:layout_marginLeft="5dp"/>
                    <TextView
                        android:id="@+id/freq_spinner"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Monthly"
                        android:textColor="#FE9A2E"
                        android:layout_marginRight="5dp"/>
                 </TableRow>
                <TableRow
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Amount"
                        android:textColor="#000"
                        android:layout_marginLeft="5dp"
                        android:layout_weight="1"/>
                    <TextView
                        android:id="@+id/amount_edit"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="$20"
                        android:textColor="#FE9A2E"
                        android:layout_marginRight="5dp"/>
                 </TableRow>
                <TableRow
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="Quarterly Amount"
                        android:textColor="#000"
                        android:layout_marginLeft="5dp"/>
                    <TextView
                        android:id="@+id/quarter_edit"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:text="$60"
                        android:textColor="#FE9A2E"
                        android:gravity="center"
                        android:layout_weight="1"/>
                    <TextView
                        android:id="@+id/quarter_edit"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="$60"
                        android:textColor="#FE9A2E"
                        android:layout_marginRight="5dp"
                        />
                 </TableRow>
            </TableLayout>
        </LinearLayout>
    </LinearLayout>
<!-- <LinearLayout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:gravity="center_horizontal"
    android:background="#ffffff">
    <Button 
        android:id="@+id/stop_button"
        android:text="stop"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_centerInParent="true"
        android:paddingLeft="50dp"
        android:paddingRight="50dp"
        android:enabled="true" />
    <Button 
        android:id="@+id/pause_button"
        android:text="pause"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_centerInParent="true"
        android:paddingLeft="50dp"
        android:paddingRight="50dp"
        android:enabled="true" />
    <ImageView 
        android:id="@+id/icon2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentBottom="true"
        android:layout_centerVertical="true"
        android:layout_marginRight="6dip"
        android:src="@drawable/ic_launcher" />
</LinearLayout>

<LinearLayout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:gravity="center_horizontal"
    android:background="#000000">
    <TextView
        android:text="some text"
        android:textSize="15pt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#ffffff"
        android:gravity="right" />
    <TextView
        android:text="more text"
        android:textSize="15pt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#ffffff"
        android:gravity="right" />
</LinearLayout> -->

<!-- </ScrollView>

<RelativeLayout

    android:layout_width="fill_parent"
    android:layout_height="60dip"
    android:layout_marginTop="-55dp"
    >
    <TextView
        android:text="Bottom"
        android:textSize="15pt"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="#ffffff" />
</RelativeLayout> -->

</LinearLayout>