#android #material-design #android-button #material-components-android
Вопрос:
Я пытаюсь изменить цвет фона и цвет текста в стиле с помощью кнопок материала. Однако я не вижу никаких изменений в IDE, а также в телефоне. Вот скриншот проблемы.
Кнопка рядом с отменой неправильного поведения, после проверки множества атрибутов я не могу изменить цвет фона.
Вот мой XML:
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<com.google.android.material.button.MaterialButton
android:id="@ id/btn_login_skip"
style="@style/myMaterialButton.Unboxed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cancel"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintRight_toLeftOf="@id/btn_login_login" />
<com.google.android.material.button.MaterialButton
android:id="@ id/btn_login_login"
style="@style/myMaterialButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pay_deail_submit_btn"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Вот некоторая информация о стиле:
<style name="myMaterialButton" parent="Widget.MaterialComponents.Button.OutlinedButton">
<item name="android:textColor">@color/colorPrimary</item>
<item name="strokeWidth">2dp</item>
<item name="android:background">@color/colorPrimaryDark</item>
</style>
Вот цвета:
<color name="colorPrimary">@color/silver</color>
<color name="colorPrimaryDark">#2A2E43</color>
Ответ №1:
По материалам Официального источника, которые вы должны использовать app:backgroundTint
в своем стиле
тем временем для проверки «Виджет.Материальные компоненты.Кнопка.Стили» Кнопки » вы должны проверить кнопки на устройстве или эмуляторе, иногда кнопки с этим стилем хорошо отображаются в IDE
Ответ №2:
MaterialButton
визуально отличается от Button
и. AppCompatButton
Одно из главных отличий заключается в том, что кнопка AppCompat имеет вставку 4dp с левой и правой сторон, в то время как кнопка Material этого не делает.
Вы можете использовать app:backgroundTint
для изменения цвета
С помощью этого вам нужно использовать
android:insetTop="0dp"
android:insetBottom="0dp"
Ответ №3:
Как описано в официальном документе, вы можете использовать backgroundTint
атрибут:
<style name="myMaterialButton" parent="Widget.MaterialComponents.Button.OutlinedButton">
<!-- Background color -->
<item name="backgroundTint">@color/...</item>
</style>
Не используйте android:background
атрибут для изменения цвета фона.