android, цвет кнопки MaterialButton изменился после добавления стиля Theme.MaterialComponents.DayNight - PullRequest
0 голосов
/ 05 марта 2020

с MaterialButton, со стилем:

<style name="InstallButtonStyle" parent="Widget.MaterialComponents.Button">
        <item name="materialThemeOverlay">@style/InstallButtonThemeOverlay</item>
    </style>

    <style name="InstallButtonThemeOverlay">
        <item name="colorPrimary">@color/btn_color</item>
    </style>

и синим цветом:

<color name="btn_color">#E6188FFF</color>

Это работало, но когда AAR используется в приложении, которое не используя материал, из которого происходит сбой приложения,

android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class com.google.android.material.button.MaterialButton

При добавлении android:theme="@style/Theme.MaterialComponents.DayNight" к кнопке приложение больше не обрабатывает sh, но цвет изменился на фиолетовый

enter image description here

<com.google.android.material.button.MaterialButton
                    android:theme="@style/Theme.MaterialComponents.DayNight"
                    android:id="@id/btn"
                    style="@style/InstallButtonStyle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="20dp"
                    android:layout_marginBottom="10dp"
                    app:cornerRadius="20dp"
                    android:layout_gravity="bottom|right"
                    android:text="Install Now"
                    android:textAllCaps="false"/>

Как сохранить цвет, как определено в стиле?

1 Ответ

0 голосов
/ 06 марта 2020

добавление "backgroundTint" заставило его работать, не уверен, что есть лучший способ:

<style name="AdInstallButtonStyle" parent="Widget.MaterialComponents.Button">
        <item name="materialThemeOverlay">@style/InstallButtonThemeOverlay</item>
        <item name="backgroundTint">@color/btn_color</item>
    </style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...