2011-06-09 46 views
0

我想實現在Android上的LinearLayout是這樣的: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所以每盒必須具有相同的寬度(因此不能使用WRAP_CONTENT爲2 item_0和ITEM_1佈局包裝用於列表項的佈局。

感謝和問候

+0

和下一個問題將是...「爲什麼我的作品的ListView,所以慢慢地」 ......看我的答案和閱讀文章 – Selvin 2011-06-09 10:03:12

回答

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

我認爲這是最好用RelativeLayout做,它會更容易 – Houcine 2011-06-09 09:52:11

+0

謝謝!這是解決方案。 – Cris 2011-06-09 09:57:22

2

嘗試添加機器人:layout_weight = 「1」 到你的第一個孩子的LinearLayout頂級的LinearLayout內(即你的XML五號線的一個):

<?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> 
+0

會更好如果你擺脫了所有嵌套的LinearLayouts,並使所有這些東西在一個RealativeLayout – Selvin 2011-06-09 09:49:53

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>