按钮对齐中心权限 - Android

时间:2012-01-16 19:41:54

标签: android button alignment

我的按钮文字在Android应用程序中正确对齐时遇到了一些麻烦。目前,我的按钮文本与按钮中心文本的左侧对齐,如图所示:

|空白|文字在这里|

我尝试过使用gravity =“center_horizo​​ntal | center_vertical”无济于事。我已经尝试将一个新按钮添加到一个完全独立的项目中,这仍然存在。它也在LinearLayouts和RelativeLayouts中执行此操作。

提前感谢您的帮助。

这是一个布局文件。然而,它正在所有这些中进行,包括在其他项目中。此外,此布局上的所有3个按钮都有相同的问题。

<?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>

1 个答案:

答案 0 :(得分: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”中指定宽度,“dp”是与密度无关的值单位。有关此主题的更多信息,请参阅此post

修改 以下是我建议的用于布局的xml代码:

<?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>