кнопка нового материала от Google действительно хороша. Согласно документации, мы можем установить значок, который отображается по умолчанию слева. Кто-нибудь знает, как правильно его установить? Я ничего не могу найти по этому поводу.
Благодарю.
кнопка нового материала от Google действительно хороша. Согласно документации, мы можем установить значок, который отображается по умолчанию слева. Кто-нибудь знает, как правильно его установить? Я ничего не могу найти по этому поводу.
Благодарю.
Я погуглил сегодня ту же проблему и нашел это: android:layoutDirection="rtl"
. Это работает в моем тестовом проекте.
В версии 1.1.0-alpha06 добавлено новое значение силы тяжести для конца .
Просто используйте атрибут app:iconGravity
или метод setIconGravity()
.
Требуется версия 1.1.0 компонентов материала для Android.
Вы также можете использовать app:iconGravity="end"
.
Также согласно документации:
Если к этой кнопке добавлен выровненный по значку значок, используйте стиль, подобный одному из стилей ".Icon", указанных в стилях MaterialButton по умолчанию. Стили ".Icon" слегка корректируют отступы для достижения лучшего визуального баланса. Этот стиль следует использовать только с выровненной по значку кнопкой. Если ваш значок выровнен по концу, вы не можете использовать стиль ".Icon" и вместо этого должны вручную отрегулировать отступы так, чтобы визуальная настройка была зеркальной.
Используйте этот метод расширения (kotlin) для каждой кнопки:
fun MaterialButton.setRightIcon() {
TextViewCompat.setCompoundDrawablesRelative(this, null, null, this.icon, null)
}
Расширьте класс 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)
}
}
minSDK>=17
) Если вы хотите использовать textStart
gravity для иконки, вы можете использовать android:layoutDirection="rtl"
для каждой кнопки.
установить android:supportsRtl="true"
в вашем приложении AndroidManifest.xml
в вашем <Application>