首页 > 解决方案 > 禁用时如何使搜索栏变灰?

问题描述

当我禁用它时,我想将我的搜索栏设为灰色。我知道我可以通过更改颜色以编程方式进行更改,但我想知道是否可以直接在我的 xml 活动布局中执行此操作。

事实上,在我的代码中,我只想这样写:

mySeekBarNuance.setEnabled(true);

我的搜索栏自动变成灰色。谢谢

标签: javaandroidseekbar

解决方案


您可以使用选择器作为 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>

如果启用,则搜索栏将是全息绿色,否则将是灰色

如果搜索栏被聚焦、按下等方式,你可以做同样的事情。

而且您不仅可以设置颜色,还可以设置整个可绘制对象


推荐阅读