2015-04-09 2 views
0

Я хочу, чтобы текст был сосредоточен в Button. Но всякий раз, когда я добавляю атрибут android:drawableLeft xml к Button, он смещает текст. Как я могу это исправить?Как центрировать текст внутри кнопки независимо от drawableLeft?

share button

Единственный способ, которым я сумел исправить это путем установки отрицательного числа в android:drawablePadding:

enter image description here

Но я ищу для более чистого раствора для ее достижения.

ответ

1

Так что я в конечном итоге происходит с меньшим из зол, и это размещение вытяжке и текст внутри RelativeLayout:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    style="@style/Button.ButtonGray" 
    android:id="@+id/share_button"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/btn_share"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textColor="@android:color/black" 
     android:textStyle="bold" 
     android:layout_centerInParent="true" 
     style="@style/TextNormalWeight" 
     android:text="@string/post_share"/> 

</RelativeLayout> 

RelativeLayout затем получает нажмите события и действия, и выглядит как кнопка.

-1

Он работает с:

android:gravity="center" 
+0

Нет, это не так. – Oleksiy

0

, к сожалению, это Button поведения, и я согласен с вами, что отрицательное заполнением вроде грязного хака, поэтому я предлагаю два других хак, что мне кажется немного менее загрязнено, потому что они полагаются на ожидаемом поведении (отрицательный отступ, хотя работу это не дизайн):

  • установить android:paddingRight на кнопке размера вводимого коэффициента
  • создать вытяжку с одинаковый размер левого рисунка, но со всеми прозрачными пикселями и помещен как правильно выведенный.
0

android: gravity = "center_vertical"

+0

Нет. «Сила тяжести» в стиле кнопок уже «центр» (а не только center_vertical). – user3175580

Смежные вопросы