2012-01-16 175 views
0

我在使我的按鈕文本在我的Android應用程序中正確對齊時遇到了一些麻煩。目前,我的按鈕文本與按鈕中心的文本左側對齊,如圖所示:中心右對齊按鈕 - Android

|空白|文本在這裏|

我曾嘗試使用重力=「center_horizo​​ntal | center_vertical」無濟於事。我已經嘗試添加一個新的按鈕到一個完全獨立的項目,這仍然成立。它也在LinearLayouts和RelativeLayouts中做到這一點。

在此先感謝您的幫助。

這是一個佈局文件。但是它在所有這些方面都做得很好,包括其他項目。此外,此佈局上的所有按鈕都有相同的問題。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<Button 
    android:layout_width="wrap_content" 
    android:text="@string/history_delete_record" 
    android:id="@+id/History_Delete_Record" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_gravity="center_horizontal|center_vertical"></Button> 
<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/History_Delete_Record" 
    android:layout_alignLeft="@+id/History_Delete_Record" 
    android:id="@+id/History_Open_Details" 
    android:text="@string/history_open_record"></Button> 
<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/History_Cancel" 
    android:text="@string/cancel" 
    android:layout_below="@+id/History_Open_Details" 
    android:layout_alignLeft="@+id/History_Open_Details" 
    android:layout_marginTop="19dp"> 
</Button> 
</RelativeLayout> 
+0

。 – cren90

+0

你可以發佈相關的佈局XML嗎? –

+0

是的,請添加您的佈局文件。 – Orest

回答

0

下面是一個簡單的執行按鈕以及居中的文本:

<Button xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/myBtn" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="center_horizontal|center_vertical" 
    android:text="Button text!" /> 

與您的代碼的問題是,您正在設置寬度以像素爲單位時,你應該使用XML屬性android:layout_width="wrap_content" ,它將包裝按鈕文本以適應相應的視圖。

另請注意,您不應該以像素爲單位設置視圖的寬度,因爲這在跨越不同的屏幕尺寸和密度時效果不佳。不要使用「px」,而應在「dp」中指定寬度,這是一個與密度無關的單位值。有關此主題的更多信息,請參見post

編輯 這裏是你用你的佈局我建議的XML代碼:我會包括一個按鈕的PIC但SO不會讓我張貼圖片還

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

    <Button 
     android:id="@+id/History_Delete_Record" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:text="@string/history_delete_record" > 
    </Button> 

    <Button 
     android:id="@+id/History_Open_Details" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/History_Delete_Record" 
     android:layout_alignRight="@+id/History_Delete_Record" 
     android:layout_below="@+id/History_Delete_Record" 
     android:text="@string/history_open_record" > 
    </Button> 

    <Button 
     android:id="@+id/History_Cancel" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/History_Open_Details" 
     android:layout_alignRight="@+id/History_Open_Details" 
     android:layout_below="@+id/History_Open_Details" 
     android:text="@string/cancel" > 
    </Button> 

</RelativeLayout> 
+0

也注意到'android:gravity ='center_horizo​​ntal | center_vertical''這一行在這裏沒有必要。如果我們將其取出,默認情況下,文本將在視圖的中心繪製。 –

+0

我已經刪除了寬度值,如你所建議的,但問題仍然存在。此外,現在按鈕不能是相同的大小。 – cren90

+0

哎呀,沒有意識到你想要的按鈕是相同的大小。在修改xml代碼時保持一秒。 –