2010-10-02 99 views
1

我正在開發我認爲會是一個簡單的列表視圖行佈局,但我有一些麻煩讓我的意見排列正確。在LinearLayout中有4個TextViews都使用layout_weight來適當調整自己的大小。然而,我無法弄清楚的是如何一致地對齊它們,以便每個TextView以與上面和下面相同的位置開始。Android列表視圖行佈局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:background="#AAAAAA88"> 

    <TextView 
     android:id="@+id/quality" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_weight="2" 
     android:layout_gravity="center_vertical|right" 
     android:textColor="#ffffff" 
     android:padding="5px" 
    /> 

    <TextView 
     android:id="@+id/route_name" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_weight="3" 
     android:layout_gravity="center_vertical|right" 
     android:textColor="#ffffff"  
     android:padding="5px"   
    /> 

    <TextView 
     android:id="@+id/route_grade" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:layout_gravity="center_vertical|right" 
     android:textColor="#ffffff"  
     android:padding="5px"   
    /> 

    <TextView 
     android:id="@+id/route_distance" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:layout_gravity="center_vertical|right" 
     android:textColor="#ffffff"  
     android:padding="2px"   
    />   

</LinearLayout> 

我使用的嘗試:重力標籤似乎不工作。 LinearLayout在這裏是錯誤的方法嗎?

作爲一個編輯,我正在使用特定的寬度值進行一些調整。現在來測試它是否在不同屏幕上顯示相同。

回答

0

重力在最小約束條件下分配剩餘可用空間而不是總空間。

因此,對齊上面和下面的不同行,確保每行的剩餘空間相等。實現這一點的一個好方法是硬編碼的最小空間中的每個元件的需要:

android:layout_weight="2" 
android:layout_width="1dip" 

製作上的每一行1dip寬度各TextView的,並根據重量分裂的剩餘空間。

0

您可以嘗試使用RelativeLayout。嘗試4個TextViews相對放置,3個可以在dp中有固定寬度,第4個可以佔用剩餘的可用空間。這樣每個文本視圖每次都會從一個固定的位置開始。

類似:

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

<TextView 
    android:id="@+id/text_1" 
    android:layout_width="60dp" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentRight="true" 
    android:gravity="left" 
    android:padding="8dp" 
    android:text="Text 1"/> 
<TextView 
    android:id="@+id/text_2" 
    android:layout_width="60dp" 
    android:layout_height="wrap_content" 
    android:layout_alignTop="@+id/text_1" 
    android:layout_toLeftOf="@+id/text_1" 
    android:gravity="left" 
    android:padding="8dp" 
    android:text="Text 2"/> 
<TextView 
    android:id="@+id/text_3" 
    android:layout_width="60dp" 
    android:layout_height="wrap_content" 
    android:layout_alignTop="@+id/text_1" 
    android:layout_toLeftOf="@+id/text_2" 
    android:gravity="left" 
    android:padding="8dp" 
    android:text="Text 3"/> 
<TextView 
    android:id="@+id/text_4" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignTop="@+id/text_1" 
    android:layout_toLeftOf="@+id/text_3" 
    android:layout_alignParentLeft="true" 
    android:gravity="left" 
    android:padding="8dp" 
    android:text="Text 4"/> 

</RelativeLayout>