我想在禁用搜索栏时将其设为灰色。 我知道我可以通过更改颜色以编程方式进行此更改,但我想知道是否有可能直接在xml活动布局中执行此操作。
事实上,在我的代码中,我只想写这个:
mySeekBarNuance.setEnabled(true);
并且我的搜索栏自动变为灰色。 谢谢
答案 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>
如果启用,搜索栏将呈绿色,否则为灰色
如果搜索栏被聚焦,按下等方式,您可以做同样的事情。
您不仅可以设置颜色,还可以设置整个可绘制对象