2011-07-27 111 views
16

我在Android上遇到了LinearLayout的問題。我有四個按鈕。每個按鈕都有固定的大小,但文本的長度可能會有所不同。LinearLayout - 垂直不對齊

我的問題是,他們不與每個頂部對齊。他們看到每個底部的文本頂部對齊,這取決於按鈕內部的行數(見圖片)。

此外,我想繼續使用LinearLayout,因爲我最終將使用代碼將基於數據庫中的數據添加按鈕。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
     <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> 
      <Button android:text="Line1 Line2" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button> 
      <Button android:text="Line1 Line2 Line3" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button> 
      <Button android:text="Line1" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button> 
      <Button android:text="Line1" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button> 
     </LinearLayout> 

</LinearLayout> 

http://i.imgur.com/0Kj8h.png

編輯:ANSWER(不能回答我的問題):

好吧,我只是找到了答案由我自己。 您必須將android:baselineAligned =「false」添加到LinearLayout或可顯示相同行爲的任何其他類似控件。

您也可以使用名爲「切換基線對齊」的按鈕在UI設計器中修復此問題。

所以生成的代碼是:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
     <LinearLayout android:baselineAligned="false" android:layout_width="match_parent" android:layout_height="match_parent"> 
      <Button android:text="Line1 Line2" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button> 
      <Button android:text="Line1 Line2 Line3" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button> 
      <Button android:text="Line1" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button> 
      <Button android:text="Line1" android:textSize="30dp" android:layout_width="160dp" android:layout_height="120dp"></Button> 
     </LinearLayout> 

</LinearLayout> 
+0

感謝有關android的提示:baselineAligned =「false」,它解決了我的問題:-) –

回答

0

嗯,你的第二線性佈局什麼創造我猜ü的麻煩,只是刪除

+0

我需要保留它,因爲它周圍會有其他東西,比如標題,但很好。 – darkzangel

1

它能夠更好地使用RelativeLayout的這種對齊類型,爲的RelativeLayout的概念說,一個控制它的「參考」

0

你可以使用TableLayout,而不是你的第二個LinearLayout.And加的TableRow的TableLayout內與該行中添加四個按鈕

+0

如果將所有項目放在同一個單元格中,TableLayout的功能相同。此外,正如我所說我想留在LinearLayout中,因爲我最終會通過代碼添加未知數量的按鈕。 我不知道這些按鈕中將顯示什麼,所以我需要保持一種簡單的方式將它們顯示爲流。另外,它會在屏幕旋轉時自動調整。 – darkzangel