2011-06-16 83 views
1

我有兩個textviews。我希望其中一個左對齊,另一個右對齊。非常像它看起來像2列表。如何正確對齊此佈局?

<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/profileLayout" android:orientation="vertical"> 
     <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:id="@+id/experience" android:orientation="horizontal"> 
      <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/experienceLabel" android:textStyle="bold" android:layout_weight="0" android:text="Experience"></TextView> 
      <LinearLayout android:id="@+id/linearLayout4" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1"></LinearLayout> 
      <TextView android:text="TextView" android:layout_height="wrap_content" android:id="@+id/experienceTextView" android:layout_gravity="right" android:layout_weight="0" android:layout_width="wrap_content"></TextView> 
     </LinearLayout> 
    </LinearLayout> 

回答

1
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> 
    <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="1"/>  
    <TextView android:layout_height="wrap_content" android:layout_weight="0" android:layout_width="wrap_content"/> 
</LinearLayout> 

設置第一個1的重量,所以它會吃掉所有的額外空間。設置2nd oen來包裝內容,所以它只佔用盡可能多的空間。

但是爲什麼你在他們周圍有一個額外的LinearLayout?如果你嵌套了LinearLayout,你應該使用RelativeLayout來代替。

1

使用相對佈局。關於相對佈局LinkExample link

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" 
android:layout_height="wrap_content"> 
<TextView android:layout_height="wrap_content" 
    android:layout_width="wrap_content" android:id="@+id/experienceLabel" 
    android:textStyle="bold" android:layout_weight="0" android:text="Experience" 
    android:layout_alignParentLeft="true"/> 
<TextView android:text="TextView" android:layout_height="wrap_content" 
    android:id="@+id/experienceTextView" android:layout_gravity="right" 
    android:layout_weight="0" android:layout_width="wrap_content" 
    android:layout_alignParentRight="true" /> 
使用的RelativeLayout的

好處:它減少了佈局的數量。這也會優化你的用戶界面。

1

 <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/experienceLabel" android:textStyle="bold" android:layout_weight="1" android:text="Experience"></TextView> 

     <TextView android:text="TextView" android:layout_height="wrap_content" android:id="@+id/experienceTextView" android:layout_weight="1" android:layout_width="wrap_content"></TextView> 

</LinearLayout> 
1

我不能完全確定要完全相同的佈局,但你可以試試這個:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/profileLayout" 
    android:orientation="vertical"> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:weightSum="2" 
     android:id="@+id/experience" 
     android:orientation="horizontal"> 
     <TextView 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:id="@+id/experienceLabel" 
      android:textStyle="bold" 
      android:layout_weight="1" 
      android:text="Experience"/> 

     <TextView 
      android:text="TextView" 
      android:layout_height="wrap_content" 
      android:id="@+id/experienceTextView" 
      android:gravity="right" 
      android:layout_weight="1" 
      android:layout_width="wrap_content"/> 
    </LinearLayout> 
</LinearLayout> 

您使用layout_gravity而非gravity也。 layout_gravity告訴家長如何佈置,gravity告訴內容如何佈置。

請注意,我如何在父佈局中將weightSum設置爲2,然後將兩個孩子設置爲各自的權重1。我還設置了家長fill_parent

你必須和額外的佈局有太多 - 如果你想間距,設置保證金在第二的TextView或使用視圖(一個比一個的LinearLayout簡單對象)