Android:我如何绘制这个LinearLayout?

时间:2011-06-09 09:41:41

标签: android android-layout

我想在Android中实现这样的LinearLayout:

http://www.disclafani.net/layout.png

但我不知道该怎么做。

如果我这样做:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent" 
android:layout_height="60dp" >
<LinearLayout 
    android:orientation="vertical"
    android:layout_width="fill_parent" 
    android:layout_height="60dp" >
    <TextView android:text="TextView" android:id="@+id/item_0"
        android:layout_width="wrap_content" 
        android:layout_height="30dp" >
    </TextView>
    <TextView android:text="TextView" android:id="@+id/item_1"
        android:layout_width="wrap_content" 
        android:layout_height="30dp" 
        android:textSize="18dp"
        android:textColor="#ff0000">
    </TextView>
</LinearLayout>    
<LinearLayout 
    android:layout_width="80dp" 
    android:gravity="right"
    android:layout_height="60dp" >
    <TextView android:text="TextView" android:id="@+id/item_2"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:textSize="20dp"
        android:textColor="#ff0000">
    </TextView>
</LinearLayout>

</LinearLayout>    

未显示第二个LinearLayout(右侧)。 我想我必须使用RelativeLayout,但是我如何绘制类似的LinearLayout?

这是用于ListView中ListItem的布局,因此每个框必须具有相同的宽度(因此不能对2 item_0和item_1布局包装使用wrap_content。

谢谢和问候

3 个答案:

答案 0 :(得分:2)

尝试将android:layout_weight =“1”添加到顶级LinearLayout内的第一个子LinearLayout(即XML第5行的那个):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="fill_parent"
    android:layout_height="60dp">
    <LinearLayout android:orientation="vertical"
        android:layout_width="fill_parent" android:layout_height="60dp" android:layout_weight="1">
        <TextView android:text="TextView" android:id="@+id/item_0"
            android:layout_width="wrap_content" android:layout_height="30dp">
        </TextView>
        <TextView android:text="TextView" android:id="@+id/item_1"
            android:layout_width="wrap_content" android:layout_height="30dp"
            android:textSize="18dp" android:textColor="#ff0000">
        </TextView>
    </LinearLayout>
    <LinearLayout android:layout_width="80dp" android:gravity="right"
        android:layout_height="60dp">
        <TextView android:text="TextView" android:id="@+id/item_2"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:textSize="20dp" android:textColor="#ff0000">
        </TextView>
    </LinearLayout>

</LinearLayout>

答案 1 :(得分:1)

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" 
android:layout_height="60dp" >

<LinearLayout 
    android:orientation="vertical"
    android:layout_width="fill_parent" 
    android:layout_height="60dp" 
    android:layout_weight="70">
    <TextView android:text="TextView" android:id="@+id/item_0"
        android:layout_width="wrap_content" 
        android:layout_height="30dp" >
    </TextView>
    <TextView android:text="TextView" android:id="@+id/item_1"
        android:layout_width="wrap_content" 
        android:layout_height="30dp" 
        android:textSize="18dp"
        android:textColor="#ff0000">
    </TextView>
</LinearLayout>    
<LinearLayout 
    android:layout_weight="30"
    android:layout_width="80dp" 
    android:gravity="right"
    android:layout_height="60dp" >
    <TextView android:text="TextView" android:id="@+id/item_2"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:textSize="20dp"
        android:textColor="#ff0000">
    </TextView>
</LinearLayout>

</LinearLayout>  

答案 2 :(得分:1)

http://developer.android.com/resources/articles/layout-tricks-efficiency.html

这种布局效率更高:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="60dp">
    <TextView android:text="TextView" android:id="@+id/item_2"
        android:layout_width="80dp" android:layout_alignParentTop="true"
        android:layout_height="60dp" android:textSize="20dp"
        android:textColor="#ff0000" android:layout_alignParentRight="true">
    </TextView>
    <TextView android:text="TextView" android:id="@+id/item_0"
        android:layout_width="fill_parent" android:layout_height="30dp"
        android:layout_toLeftOf="@id/item_2">
    </TextView>
    <TextView android:text="TextView" android:id="@+id/item_1"
        android:layout_width="fill_parent" android:layout_height="30dp"
        android:textSize="18dp" android:textColor="#ff0000"
        android:layout_below="@id/item_0" android:layout_toLeftOf="@id/item_2">
    </TextView>
</RelativeLayout>