Android:修改Button启用状态颜色且不改变禁用状态颜色
嘿,关于Android里android.widget.Button(它本身继承自TextView)的启用和禁用设置,我来给你理清楚具体怎么实现:
1. XML布局代码
先看你提供的Button布局代码,我把未完成的约束部分补全了(你可以根据实际布局需求调整目标):
<Button android:id="@+id/maps_list_save_button" android:layout_width="0dp" android:layout_height="wrap_content" android:text="@string/str_save" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" />
2. Java代码动态控制状态
在你的Activity或者Fragment里,只需要两步就能搞定:先找到这个Button实例,再调用setEnabled()方法切换状态。
启用Button
// 找到Button控件 Button saveButton = findViewById(R.id.maps_list_save_button); // 设置为启用状态,此时Button可正常点击交互 saveButton.setEnabled(true);
禁用Button
// 找到Button控件 Button saveButton = findViewById(R.id.maps_list_save_button); // 设置为禁用状态,此时Button不可点击,系统会自动调整它的外观(比如降低透明度、变灰)来提示用户 saveButton.setEnabled(false);
额外小技巧:如果你希望布局加载完成后Button默认是禁用的,直接在XML里添加android:enabled="false"属性就行,之后再通过Java代码随时切换状态。
内容的提问来源于stack exchange,提问作者Canato




