java - 禁用时如何使搜索栏变灰?
问题描述
当我禁用它时,我想将我的搜索栏设为灰色。我知道我可以通过更改颜色以编程方式进行更改,但我想知道是否可以直接在我的 xml 活动布局中执行此操作。
事实上,在我的代码中,我只想这样写:
mySeekBarNuance.setEnabled(true);
我的搜索栏自动变成灰色。谢谢
解决方案
您可以使用选择器作为 Seekbar 的背景
如果满足条件,选择器会设置您想要的内容(此处android:state_enabled="true"
:)
在您的活动/片段布局中,您将搜索栏与作为选择器的背景放在一起:
<SeekBar
android:id="@+id/seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/selector_seekbar"/>
您在可绘制文件夹中创建选择器: selector_seekbar.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false"
android:drawable="@android:color/darker_gray" />
<item android:state_enabled="true"
android:drawable="@android:color/holo_green_dark" />
</selector>
如果启用,则搜索栏将是全息绿色,否则将是灰色
如果搜索栏被聚焦、按下等方式,你可以做同样的事情。
而且您不仅可以设置颜色,还可以设置整个可绘制对象