2014-08-27 69 views
0

我需要爲列表視圖項目創建一個佈局,如下所示。但我試圖不去創造它,但我也在考慮表現。我嘗試過使用帶有weight屬性的嵌套線性佈局來做到這一點,但據我所知,使用具有這種屬性的嵌套線性佈局並不是一個好習慣,因爲它會降低我的應用程序的性能。此外,我試圖使用相對佈局,但我沒有達到預期的結果。中間文本視圖應該提供最多的空間。 在此先感謝您的幫助。創建列表項目的最佳做法

enter image description here

+0

整個項目的高度是已知的還是固定的?中間的文本框每個都必須佔據垂直空間的一半嗎? – 2014-08-27 22:22:38

回答

0

也許我沒有理解錯的話,也許-or有一定的要求,你沒有說,但我認爲它應該滿足您的需求:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="100dp" 
android:orientation="horizontal" 
android:weightSum="1"> 

<RelativeLayout 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight="0.25" 
    android:background="#8E7AE5"></RelativeLayout> 

<LinearLayout 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight="0.5" 
    android:background="#E57A7A" 
    android:orientation="vertical"> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:background="#D5E57A" 
     android:gravity="center" 
     android:text="Top" /> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:gravity="center" 
     android:text="Down" /> 
</LinearLayout> 


<RelativeLayout 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight="0.25" 
    android:background="#8E7AE5"></RelativeLayout> 
</LinearLayout> 
0

嗯,我會做這樣的:

<LinearLayout xmlns:andoird="http://schemas.android.com/apk/res/android" 
andoird:layout_width="match_parent" 
andoird:layout_height="48dp" 
andoird:orientation="horizontal" 
android:weightSum:1> 


<TextView 
    andoird:layout_width="0dp" 
    andoird:layout_height="match_parent" 
    andoird:layout_weight="0.25" 
    andoird:text="Left textView"/> 

<!-- Middle container --> 
<LinearLayout 
    andoird:layout_width="0dp" 
    andoird:layout_height="wrap_content" 
    andoird:layout_weight="0.5" 
    andoird:orientation="vertical"> 

    <TextView 
     andoird:layout_width="match_parent" 
     andoird:layout_height="24dp" 
     andoird:text="Middle Top textView"/> 

    <TextView 
     andoird:layout_width="match_parent" 
     andoird:layout_height="24dp" 
     andoird:text="Middle Bottom textView"/> 

</LinearLayout> 

<Switch 
    andoird:layout_width="0dp" 
    andoird:layout_height="match_parent" 
    andoird:layout_weight="0.25" 
    andoird:text="Right switch" /> 

ŧ他的佈局不會拋出關於性能的任何XML警告。說到性能,你應該在你的ListView適配器中使用你的ViewHolder。它有助於很多。

0

試試這個方法,希望這會幫助你解決你的問題。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="0.25" 
     android:gravity="center_vertical" 
     android:paddingLeft="10dp"> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="textview"/> 

    </LinearLayout> 
    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="0.50" 
     android:orientation="vertical" 
     android:paddingLeft="10dp"> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:gravity="center_vertical"> 
      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="textview"/> 
     </LinearLayout> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" 
      android:gravity="center_vertical"> 
      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="textview"/> 
     </LinearLayout> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="0.25" 
     android:gravity="center_vertical" 
     android:paddingLeft="10dp"> 
     <Switch 
      android:id="@+id/main_button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"/> 
    </LinearLayout> 
</LinearLayout> 

注:我想使用的LinearLayout體重就可以達到您的要求。

相關問題