簡體   English   中英

Android XML布局-兩列,每行一列

[英]Android XML Layout - Two Columns with rows and one bottom 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   |
---------------------

您需要將所有內容都包裝在第三個帶有direction =“ vertical”的LinearLayout中,並將TextView添加到它的底部。

在偽布局中:

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

這是因為您希望TextView 垂直位於下方

我認為Matt最好地回答了您的問題,特別是如果您只是在尋找快速解決方案。

如B Mac所述,您可能會發現TableLayout有用,這里還有兩個鏈接可能會有用。

  1. 布局優化:相對布局
  2. 調試和分析用戶界面

嘗試這個:

<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>

您是否嘗試過使用TableLayout而不是LinearLayout作為構成Grid的圖標/按鈕/文本字段。 您可以放置​​它,使其具有兩列,但是需要很多行。 (如果這不是靜態安排,並且您希望在添加更多內容時滾動瀏覽圖標/按鈕/文本字段,則可能需要考慮具有用戶定義的布局視圖的ListView布局...看起來像您想要的在這里有兩個,一個帶有水平放置的按鈕和文本,另一個帶有水平放置的圖標和文本)。

然后,使用TableLayout下面的水平LinearLayout進行最后一行的寬度變化,其寬度與定義的TableLayout相同(看起來像您希望它跨越所制作的兩列)?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM