Текст кнопки не центрируется - PullRequest
4 голосов
/ 20 ноября 2011

У меня куча кнопок на очень сложной компоновке.Проблема в том, что что бы я ни делал, кнопки не будут центрировать текст внутри них.Я попытался добавить 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 ]

3 голосов
/ 26 декабря 2011

Установите равное заполнение кнопки следующим образом:

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

Надеюсь, это решит проблему.

0 голосов
/ 04 января 2012

В вашем коде для каждой кнопки вы

Android: ширина = "wrap_content"

Так что, какой бы ни была длина текста, кнопка не займет столько места,

поэтому нет необходимости делать текстовый центр

0 голосов
/ 04 января 2012

У меня есть одно случайное решение для этого, просто укажите несколько пробелов в начале и конце текста, например "android: text =" xyz ".

0 голосов
/ 20 ноября 2011

Попробуйте сделать кнопку фиксированной ширины.

layout_width="100dip"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...