Изменить цвет с помощью кнопки выделения материала не работает

#android #android-button #android-theme #android-styles #material-components-android

#Android #android-кнопка #android-тема #android-стили #материал-компоненты-android

Вопрос:

Я хочу изменить цвет активной кнопки переключения. Но только изменение цвета ряби имеет значение. Я хочу настроить цвет фона активной кнопки и цвет текста.

 <style name="ToggleButtonGroupStyle" parent="Widget.MaterialComponents.Button.OutlinedButton">
            <item name="rippleColor">@color/colorAccent</item>
</style>

  

В следующей toggleButtonGroup я использовал этот стиль сверху:

          <com.google.android.material.button.MaterialButtonToggleGroup
            android:id="@ id/priority_btn_group"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_alignParentLeft="true"
            app:selectionRequired="true"
            app:singleSelection="true"
            app:checkedButton="@ id/btn_one"
            >

            <com.google.android.material.button.MaterialButton
                android:id="@ id/btn_one"
                style="@style/ToggleButtonGroupStyle"
                android:layout_width="@dimen/priority_btn_width"
                android:layout_height="wrap_content"
                android:shadowColor="@color/project_text"
                android:text="0" />

            <com.google.android.material.button.MaterialButton
                style="@style/ToggleButtonGroupStyle"
                android:layout_width="@dimen/priority_btn_width"
                android:layout_height="wrap_content"
                android:text="!" />

            <com.google.android.material.button.MaterialButton
                style="@style/ToggleButtonGroupStyle"
                android:layout_width="@dimen/priority_btn_width"
                android:layout_height="wrap_content"
                android:text="!!" />

            <com.google.android.material.button.MaterialButton
                style="@style/ToggleButtonGroupStyle"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:text="!!!" />


        </com.google.android.material.button.MaterialButtonToggleGroup>

  

Кто-нибудь может дать мне подсказку, в чем проблема?
Спасибо 🙂

Ответ №1:

Цвет фона отмеченных кнопок зависит от colorPrimary атрибута.
Вы можете использовать:

 <com.google.android.material.button.MaterialButton
    android:id="@ id/btn_one"
    style="?attr/materialButtonOutlinedStyle"
    android:theme="@style/ThemeOverlay.Custom.Button"
  

с:

 <style name="ThemeOverlay.Custom.Button" parent="">
    <item name="colorPrimary">@color/....</item>
</style>
  

введите описание изображения здесь

или вы можете использовать пользовательский стиль с:

     <com.google.android.material.button.MaterialButton
        android:id="@ id/btn_one"
        style="@style/ToggleButtonGroupStyle"
  

с:

 <style name="ToggleButtonGroupStyle" parent="Widget.MaterialComponents.Button.OutlinedButton">
    <item name="backgroundTint">@color/custom_selector</item>
</style>


<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/..." android:state_checked="true"/>  <!-- selected color -->
    <item android:color="@android:color/transparent" android:state_checked="false"/>
</selector>
  

введите описание изображения здесь
введите описание изображения здесь