首页 > 解决方案 > Is it possible to change MaterialButton's style "on fly"?

问题描述

Android 6.0, Android Studio 3.5

In my android project , in my xml layout:

<com.google.android.material.button.MaterialButton
            android:id="@+id/buttonStartSearchBluetooth"
            style="@style/buttonEnableStyle"
            android:layout_width="0dp"
            android:layout_height="@dimen/button_height"
            android:layout_margin="@dimen/button_margin"
            android:onClick="onClickButtonStartSearch"
            android:text="@string/start_search"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent" />

my styles:

 <style name="buttonEnableStyle" parent="Widget.MaterialComponents.Button.UnelevatedButton">
        <item name="android:textColor">@color/text_color_states_materialbuttons</item>
        <item name="backgroundTint">@color/color_states_materialbutton</item>
        <item name="android:textAppearance">@style/byttonTexAppearanceStyle</item>
    </style>

    <style name="buttonClickStyle" parent="@style/Widget.MaterialComponents.Button">
        <item name="android:textColor">@color/button_bg_color</item>
        <item name="backgroundTint">@color/button_click_bg_color</item>
        <item name="android:textAppearance">@style/byttonTexAppearanceStyle</item>
    </style>

When click on this button I want to change style from buttonEnableStyle to buttonClickStyle "on fly". Is it possible to do this programmaticaly?

标签: androidmaterial-designandroid-buttonmaterial-componentsmaterial-components-android

解决方案


推荐阅读