Материал Кнопка со значком справа - PullRequest
0 голосов
/ 11 июня 2018

кнопка новый материал от Google действительно хороша.Согласно документации , мы можем установить значок, который будет показан слева по умолчанию.Кто-нибудь знает, как правильно установить?Я ничего не могу найти по этому поводу.

Спасибо.

Ответы [ 4 ]

0 голосов
/ 18 августа 2019

Просто используйте атрибут app:iconGravity или метод setIconGravity().

Требуется версия 1.1.0 материальных компонентов для Android.

enter image description here

Вы также можете использовать app:iconGravity="end".

Также в соответствии с документация :

Если к этой кнопке добавлен выровненный по началу значок, используйте стиль, подобный одному из стилей ".Icon", указанных в стилях MaterialButton по умолчанию.Стили ".Icon" слегка корректируют отступы для достижения лучшего визуального баланса.Этот стиль следует использовать только с выровненной по значку кнопкой.Если ваш значок выровнен по концу, вы не можете использовать стиль «.Icon» и вместо этого должны вручную отрегулировать заполнение так, чтобы визуальная настройка была зеркальной.

0 голосов
/ 28 апреля 2019

Решение 1

Используйте этот метод расширения (kotlin) для каждой кнопки:

fun MaterialButton.setRightIcon() { 
    TextViewCompat.setCompoundDrawablesRelative(this, null, null, this.icon, null) 
}

Решение 2 (лучший способ)

Расширение MaterialButton класса для использованиявезде:

class RtlMaterialButton(context: Context, attrs: AttributeSet) : MaterialButton(context, attrs) {

    override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec)
        updateIcon()
    }
    private fun updateIcon() {
        TextViewCompat.setCompoundDrawablesRelative(this, null, null, icon, null)
    }

}

Решение 3 (работа в minSDK>=17)

Если вы хотите использовать textStart Гравитация для значка, вы можете использовать android:layoutDirection="rtl" для каждой кнопки.

установить android:supportsRtl="true" в вашем приложении AndroidManifest.xml в вашем <Application> теге

0 голосов
/ 21 мая 2019

В версии 1.1.0-alpha06

есть новое значение силы тяжести для end
0 голосов
/ 09 декабря 2018

Я сегодня погуглил ту же проблему и нашел вот это: android:layoutDirection="rtl".Это работает в моем тестовом проекте.

...