禁用时如何将搜寻栏显示为灰色?

时间:2019-04-12 11:47:01

标签: java android seekbar

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

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

  

mySeekBarNuance.setEnabled(true);

并且我的搜索栏自动变为灰色。 谢谢

2 个答案:

答案 0 :(得分:0)

这样做

在您的styles.xml

   <style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar"> // or the themw you are using
        ...
        ...
         <item name="android:seekBarStyle">@style/MySeekBarStyle</item>
   </style>

还添加新样式

<style name="MySeekBarStyle"  parent="android:Widget.SeekBar">
    <item name="android:colorControlNormal">@color/gray</item> // put here the color for disable state
</style>

controlColorNormal用于禁用状态,colorAccent用于启用状态

答案 1 :(得分:0)

您可以将选择器用作搜索栏的背景

选择器设置要满足的条件(此处为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>

如果启用,搜索栏将呈绿色,否则为灰色

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

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