1

我可能是一個傻瓜,但似乎增加了Button到水平LinearLayout休息layout_gravity="top"鍵斷裂的LinearLayout layout_gravity頂部

<?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="match_parent" 
    android:orientation="horizontal"> 

    <TextView 
     android:id="@+id/text" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:layout_gravity="top" 
     android:text="TextView" 
     android:background="#f00" /> 

    <ProgressBar 
     android:id="@+id/progressBar1" 
     style="?android:attr/progressBarStyleLarge" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

    <Button 
     android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="200dp" 
     android:layout_weight="0" 
     android:text="Button" /> 

</LinearLayout> 

這看起來像這樣(在佈局編輯器):

screenshot

注意,文中觀點是在中心,不頂!如果*我要做的就是去除<button>,那麼它看起來像這樣:

working screenshot

看,現在它是在頂部像它應該是。我將使用一個解決方法是讓layout_gravity="start"這確實導致了正確的行爲:

enter image description here

但無論如何,這是怎麼回事?另見this related question。這實際上可能是同樣的問題;我不確定。無論如何,沒有真正的答案。

回答

4

啊哈,我找到了答案!你必須設置android:baselineAligned="false"。從來沒有聽說過,有點討厭,它默認情況下!

<?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="match_parent" 
    android:baselineAligned="false" 
    android:orientation="horizontal"> 

...