2016-02-19 53 views
1

我有一個應用程序使用android:layout_weight作爲標題間距,但是當我在不同屏幕上查看應用程序時,會更改間距(與下面的行數據不對齊)。如何使用Android:layout_weight始終爲所有屏幕尺寸

我有5個標題,但標題沒有正確對齊所有設備。

如何確保我使用android:layout_weight來實現可以在所有屏幕尺寸上工作的公共間距佈局?

<LinearLayout 
    android:id="@+id/listTitles" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/table_heading" 
    android:paddingBottom="7dp" 
    android:paddingTop="8dp" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="42dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="1.1" 
     android:gravity="center" 
     android:text="POS" 
     android:textColor="#ffffff" 
     android:textSize="12sp" /> 


    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="90dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="1.8" 
     android:gravity="left|center" 
     android:text="NAME" 
     android:textColor="#ffffff" 
     android:textSize="12sp" /> 

    <TextView 
     android:id="@+id/textView7" 
     android:layout_width="40dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="1.2" 
     android:gravity="center" 
     android:text="BIRTH" 
     android:textColor="#ffffff" 
     android:textSize="12sp" /> 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="40dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="1.2" 
     android:gravity="center" 
     android:text="SCORE" 
     android:textColor="#ffffff" 
     android:textSize="12sp" /> 

    <TextView 
     android:id="@+id/textView4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="1.4" 
     android:gravity="center" 
     android:text="POINTS" 
     android:textColor="#ffffff" 
     android:textSize="12sp" /> 

    <TextView 
     android:id="@+id/textView5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="1.4" 
     android:gravity="right|center" 
     android:paddingRight="10dp" 
     android:text="ROUND" 
     android:textColor="#ffffff" 
     android:textSize="12sp" /> 
</LinearLayout> 
+1

我相信當你使用你需要設置無論是layout_width或layout_height(這曾經你是立足於重)至0dp – Phil

+0

的值的layout_weight是否低於行佈局具有相同的'layout_weight'爲標題? –

回答

-2

設置父的LinearLayout weight_sum到7,因爲所有被佔領TextView的空間等於7

改變所有的TextView到0dp的layout_width。這是一個修改版本

<LinearLayout 
    android:id="@+id/listTitles" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/table_heading" 
    android:paddingBottom="7dp" 
    android:weightSum="7" 
    android:paddingTop="8dp" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="1.1" 
     android:gravity="center" 
     android:text="POS" 
     android:textColor="#ffffff" 
     android:textSize="12sp" /> 


    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="1.8" 
     android:gravity="left|center" 
     android:text="NAME" 
     android:textColor="#ffffff" 
     android:textSize="12sp" /> 

    <TextView 
     android:id="@+id/textView7" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="1.2" 
     android:gravity="center" 
     android:text="BIRTH" 
     android:textColor="#ffffff" 
     android:textSize="12sp" /> 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="1.2" 
     android:gravity="center" 
     android:text="SCORE" 
     android:textColor="#ffffff" 
     android:textSize="12sp" /> 

    <TextView 
     android:id="@+id/textView4" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="1.4" 
     android:gravity="center" 
     android:text="POINTS" 
     android:textColor="#ffffff" 
     android:textSize="12sp" /> 

    <TextView 
     android:id="@+id/textView5" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_weight="1.4" 
     android:gravity="right|center" 
     android:paddingRight="10dp" 
     android:text="ROUND" 
     android:textColor="#ffffff" 
     android:textSize="12sp" /> 
</LinearLayout> 
+0

沒有必要設置'weight_sum'。 Android會自動計算此值。 –

+0

是的,但它是個人喜好 – Inducesmile

+0

它也沒有解決問題中的實際問題。 –

0

這裏有兩個問題:

  1. 使用layout_weight,你必須設置layout_width0dp

  2. 表中的行或ListView必須具有相同的layout_weightlayout_width值。