2011-08-02 118 views
1

以下是我的3個按鈕的android佈局。它看起來不錯,很好。但是,當我將按鈕的單個按鈕的文本大小更改爲某個其他值時,它會打破布局(字體大小和引力改變,但是)。Android:當文字大小發生變化時佈局中斷

<LinearLayout android:weightSum="1.0" 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" android:layout_marginBottom="20dp" 
     android:background="#FFF"> 

     <Button android:id="@+id/allimagebtn" android:layout_weight=".30" 
      android:layout_height="60dp" 
      android:textColor="#FFF" 
      android:background="@drawable/cam_red" android:text="Images" android:gravity="bottom" android:paddingLeft="10dp" android:layout_marginTop="2dp" android:paddingTop="2dp" android:layout_width="100dp" android:layout_margin="2dp"/> 

     <Button android:id="@+id/button2video" android:layout_weight=".30" 
      android:layout_height="60dp" 
      android:background="@drawable/vid_red" android:textColor="#FFF" android:text="Video Files" android:gravity="bottom" android:textSize="12dp" android:paddingLeft="10dp" android:paddingTop="2dp" android:layout_width="100dp" android:layout_marginTop="2dp"/> 

     <Button android:id="@+id/button3audio" android:layout_weight=".30" 
      android:layout_height="60dp" 
      android:textColor="#FFF" 
      android:background="@drawable/aud_red" android:text="Audio Files" android:gravity="bottom" android:textSize="12dp" android:paddingLeft="10dp" android:paddingTop="2dp" android:layout_marginTop="2dp" android:layout_width="100dp" android:layout_margin="2dp"/> 

    </LinearLayout> 

<LinearLayout android:weightSum="1.0" 
    android:layout_width="fill_parent" android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" android:layout_marginBottom="20dp" 
    android:background="#FFF"> 

    <Button android:id="@+id/allimagebtn" android:layout_weight=".30" 
     android:layout_height="60dp" 
     android:textColor="#FFF" 
     android:background="@drawable/cam_red" android:paddingLeft="10dp" android:layout_marginTop="2dp" android:paddingTop="2dp" android:layout_width="100dp" android:layout_margin="2dp" android:textSize="30dp" android:text="1" android:gravity="top"/> 

    <Button android:id="@+id/button2video" android:layout_weight=".30" 
     android:layout_height="60dp" 
     android:background="@drawable/vid_red" android:textColor="#FFF" android:text="Video Files" android:gravity="bottom" android:textSize="12dp" android:paddingLeft="10dp" android:paddingTop="2dp" android:layout_width="100dp" android:layout_marginTop="2dp"/> 

    <Button android:id="@+id/button3audio" android:layout_weight=".30" 
     android:layout_height="60dp" 
     android:textColor="#FFF" 
     android:background="@drawable/aud_red" android:text="Audio Files" android:gravity="bottom" android:textSize="12dp" android:paddingLeft="10dp" android:paddingTop="2dp" android:layout_marginTop="2dp" android:layout_width="100dp" android:layout_margin="2dp"/> 

</LinearLayout> 

圖像0​​![在這裏輸入的形象描述] [1]![在這裏輸入的形象描述] [2]

如何避免這種??

謝謝你的時間。

http://imageshack.us/photo/my-images/35/beforeff.png/

http://imageshack.us/photo/my-images/9/afteri.png/

+0

「打破布局」不是最有幫助的描述。你能更具體地說明你期望看到什麼,而你看到的是什麼?屏幕截圖獲得獎勵積分。註釋截圖獲得獨角獸。 – Paddy

+0

我改變了,並添加更多信息與scren鏡頭。你可以檢查一下:) –

+0

更有幫助。我會試穿它,但下面三個人已經有我最好的猜測了。 :) – Paddy

回答

2

我檢查你的代碼。你已經修復了視圖的高度和寬度,這不是一個好主意。 我使用wrap_content進行了測試,並且工作正常。所以儘量避免使用固定的高度和寬度,而是使用wrap_content和fill_parent來滿足您的需求。如果您遇到任何問題,可以使用相對佈局。

+0

謝謝我更改爲fill_parent的高度,它的工作就像魅力:) –

1

看來你是設置layout_weightlayout_width 試試這個(設置layout_weight1layout_width0

如果它適合你,它應該工作(均勻分佈的線性佈局兒童

試試這個

<LinearLayout 
     android:layout_width="fill_parent" android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" android:layout_marginBottom="20dp" 
     android:background="#FFF"> 

     <Button android:id="@+id/allimagebtn" android:layout_weight="1" 
      android:layout_height="60dp" 
      android:textColor="#FFF" 
      android:background="@drawable/cam_red" android:text="Images" android:gravity="bottom" android:paddingLeft="10dp" android:layout_marginTop="2dp" android:paddingTop="2dp" android:layout_width="0dp" android:layout_margin="2dp"/> 

     <Button android:id="@+id/button2video" android:layout_weight="1" 
      android:layout_height="60dp" 
      android:background="@drawable/vid_red" android:textColor="#FFF" android:text="Video Files" android:gravity="bottom" android:textSize="12dp" android:paddingLeft="10dp" android:paddingTop="2dp" android:layout_width="0dp" android:layout_marginTop="2dp"/> 

     <Button android:id="@+id/button3audio" android:layout_weight="1" 
      android:layout_height="60dp" 
      android:textColor="#FFF" 
      android:background="@drawable/aud_red" android:text="Audio Files" android:gravity="bottom" android:textSize="12dp" android:paddingLeft="10dp" android:paddingTop="2dp" android:layout_marginTop="2dp" android:layout_width="0dp" android:layout_margin="2dp"/> 

    </LinearLayout> 
+0

感謝您的時間和答案,但它沒有工作:) –

+0

就像@Mansi所說的增加引力=中心...但問題是,你正在使用百分比的重量,並在同一時間設置寬度.. 。爲什麼我的代碼沒有工作!? –

1

我看到您的代碼,您必須在您的LinearLayout中添加android:gravity =「center」

例如,

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:weightSum="1.0" android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_marginBottom="20dp" 
      android:background="#FFF" android:gravity="center"> 
    </LinearLayout> 

我覺得你的問題將得到解決。嘗試一下。

謝謝。

相關問題