按钮文字不居中

时间:2011-11-20 16:06:04

标签: android android-layout

我在一个非常复杂的布局上有一堆按钮。问题是,无论我做什么,按钮都不会将文本置于其中。我尝试添加android:gravity =“center”,我尝试从代码设置重力,我尝试从按钮中删除所有格式。我究竟做错了什么?按钮上的文字需要居中。

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>

                                                              

<FrameLayout android:layout_width="wrap_content"
    android:layout_height="130dp" android:layout_gravity="center"
    android:orientation="vertical">
    <!-- android:background="@drawable/picture_frame_94x94_suggested_matches" -->


    <ImageView android:layout_width="wrap_content"
        android:src="@drawable/picture_unknown" android:layout_height="fill_parent"
        android:scaleType="centerInside" android:paddingTop="12dp"
        android:paddingBottom="40dp" android:id="@+id/suggest_icon"
        android:layout_gravity="center"></ImageView>
    <TextView android:layout_width="wrap_content"
        android:layout_gravity="center_horizontal|bottom"
        android:paddingLeft="4dp" android:paddingRight="4dp"
        android:layout_height="wrap_content" android:id="@+id/suggest_name"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:paddingBottom="12dp" android:textColor="@color/black"></TextView>

</FrameLayout>

<LinearLayout android:orientation="horizontal"
    android:layout_gravity="center_horizontal" android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:layout_weight="0.4">
    <Button android:id="@+id/unmatch_button" android:text="Un-match" android:textColor="@color/white" 
        android:background="@drawable/button_background" android:layout_gravity="center_vertical"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_marginRight="8dp" android:layout_marginLeft="8dp" android:gravity="center"
        android:visibility="gone"  android:textAppearance="?android:attr/textAppearanceMedium" />
    <Button android:id="@+id/nextmatch_button" android:text="@string/next" android:textColor="@color/white" 
        android:background="@drawable/button_background" android:layout_gravity="center_vertical"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_marginRight="8dp" layout_marginLeft="8dp" android:gravity="center"
        android:visibility="gone"  android:textAppearance="?android:attr/textAppearanceMedium" />
    <Button android:id="@+id/donematchpicker_button" android:text="@string/done" android:textColor="@color/white" 
        android:background="@drawable/button_background" android:layout_gravity="center_vertical"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_marginRight="8dp" layout_marginLeft="8dp" android:gravity="center"
        android:visibility="gone"  android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
<TextView android:layout_width="wrap_content"
    android:layout_gravity="center_horizontal|bottom"
    android:paddingLeft="4dp" android:paddingRight="4dp"
    android:layout_height="wrap_content" android:id="@+id/suggest_count"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:paddingBottom="12dp" android:textColor="@color/black"></TextView>

<include layout="@layout/facebook_list" android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

<View android:id="@+id/list_devider" android:layout_width="fill_parent"
    android:layout_height="1dp" android:background="?android:attr/listDivider"
    android:visibility="gone" />

<LinearLayout android:orientation="horizontal" 
    android:layout_weight="0.4" android:layout_gravity="center_horizontal"
    android:layout_width="wrap_content" android:layout_height="wrap_content">
    <Button android:id="@+id/exit_button" android:text="@string/exit" android:textColor="@color/white" 
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:background="@drawable/button_background" android:layout_marginRight="8dp"
        layout_marginLeft="8dp" android:visibility="gone" android:gravity="center"
        android:layout_marginTop="12dp"  android:textAppearance="?android:attr/textAppearanceMedium" />
    <Button android:id="@+id/donematch_button" android:text="@string/done" android:textColor="@color/white" 
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:background="@drawable/button_background" android:layout_marginRight="8dp"
        layout_marginLeft="8dp" android:visibility="gone" android:gravity="center"
        android:layout_marginTop="12dp"  android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>

 这是对话框背景的XML:

<?xml version="1.0" encoding="UTF-8"?>

<solid android:color="#969798" />
<stroke android:width="3dp" android:color="#7dd6ee" />

     <corners android:bottomRightRadius="6dp" android:bottomLeftRadius="6dp" 
 android:topLeftRadius="6dp" android:topRightRadius="6dp"/> 

屏幕截图:http://i39.tinypic.com/fc8aoo.png

这是示例按钮初始化:

        nextButton = (Button)findViewById(R.id.nextmatch_button);
    nextButton.setVisibility(View.VISIBLE);
    nextButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            new Thread(new Runnable() {
                public void run() {
                // bunch of code
    });     
    nextButton.setGravity(Gravity.CENTER);

这是按钮背景的定义:

 <?xml version="1.0" encoding="utf-8"?>  
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/button_small_hover" /> 
    <item android:state_focused="true" android:drawable="@drawable/button_small_hover" /> 
    <item android:state_enabled="false" android:drawable="@drawable/button_small2_disabled" />
    <item android:drawable="@drawable/button_small2" /> 
</selector>

是什么导致文本左对齐而不是居中我用它做什么?我似乎无法弄明白。

4 个答案:

答案 0 :(得分:3)

设置按钮的相等填充,如:

nextButton.setPadding(2,2,2,2);

希望这能解决问题。

答案 1 :(得分:0)

在您的代码中,对于您的每个按钮

机器人:宽度= “WRAP_CONTENT”

因此无论文本的长度如何,按钮都不会占用那么多空间,

所以不存在制作文本中心的问题

答案 2 :(得分:-1)

尝试制作固定宽度的按钮。

layout_width="100dip"

答案 3 :(得分:-1)

我有一个随意的解决方案,只需在文本的开头和结尾留出一些空格,例如“android:text =”xyz“。