我正在写一个应用程序,它使用搜索栏来控制音量。我想让搜索栏更粗,所以我实现了一个基于Android - How to change default SeekBar thickness?的自定义搜索栏
一切都运行得很好,除了现在我想禁用控件时,它会禁用功能,但不会改变它的视觉外观。在应用自定义搜索栏之前,禁用该控件会使其变为灰色,以便用户知道它已被禁用。
有人知道我不能设置什么自定义控件的样式吗?
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape
android:shape="line">
<stroke
android:color="@color/seek_bar_background"
android:width="@dimen/seek_bar_thickness"/>
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape
android:shape="line">
<stroke
android:color="@color/seek_bar_progress"
android:width="@dimen/seek_bar_thickness"/>
</shape>
</clip>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape
android:shape="line">
<stroke
android:color="@color/seek_bar_secondary_progress"
android:width="@dimen/seek_bar_thickness"/>
</shape>
</clip>
</item>
</layer-list>
一定有某种<item android:id="@android:id/disabled">
属性?我已经找过了,但是找不到任何东西,其他所有设计搜索栏样式的人似乎都没有使用任何其他的项目属性。
发布于 2018-06-12 04:57:20
我已经能够通过使用选择器来实现这一点。
基本上,我的使用搜索栏元素的axml
文件调用
android:progressDrawable="@menu/seek_style_selector"
android:thumb="@menu/seek_thumb_selector"
这些选择器是实现项android:state_enabled="false"
的两个新文件
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@menu/seek_disabled"></item>
<item android:drawable="@menu/seek">
</item>
</selector>
因此,如果它被禁用,它将使用seek_disabled
文件,该文件对元素具有不同的不透明度。否则,它将继续使用正常的查找文件。
https://stackoverflow.com/questions/50805022
复制相似问题