Как центрировать значок в MaterialButton, у которого нет текста? - PullRequest
0 голосов
/ 15 февраля 2019

Я использую последнюю версию библиотеки com.google.android.material:material (т.е. 1.1.0-alpha03), и у меня есть MaterialButton, определенный с иконкой и без текста следующим образом:

Я надеялся, что MaterialButton будет отображаться в виде квадрата с иконкой в ​​центре, но вместо этого MaterialButton будет выглядеть следующим образом:

MaterialButton with iconGravity value of start

Если я изменю значение iconGravity на "textStart", MaterialButton будет выглядеть следующим образом:

MaterialButton with iconGravity value of textStart

Это небольшое улучшениерасположение значка, но значок все еще немного смещен от центра.Если я изменю значения insetLeft, insetRight, insetTop и insetBottom на 0dp, MaterialButton будет выглядеть следующим образом:

enter image description here

Это улучшение формы кнопки, но значок все еще немного смещен от центра.

Кто-нибудь знает, есть ли что-нибудь еще, что я могу сделать, чтобы центрировать значок внутри MaterialButton?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Существует также версия стиля материала Icon на вашей кнопке.Для заполненных кнопок, которые вы используете, вы можете установить стиль на Widget.MaterialComponents.Button.Icon.

0 голосов
/ 15 февраля 2019

Нашел это.Атрибут, который я пропустил, был app:iconPadding="0dp".

Итак, из моих экспериментов, минимальные атрибуты, необходимые для создания квадрата MaterialButton, который имеет значок в центре и без текста, следующие:

<com.google.android.material.button.MaterialButton
    android:layout_width="52dp"
    android:layout_height="52dp"
    android:insetLeft="0dp"
    android:insetTop="0dp"
    android:insetRight="0dp"
    android:insetBottom="0dp"
    app:icon="@drawable/icon_next"
    app:iconGravity="textStart"
    app:iconPadding="0dp" />

Эти атрибуты дают MaterialButton следующим образом:

MaterialButton with square shape and centred icon

...