我正在编写一个使用搜索栏来控制音量的应用。我希望搜索栏更厚,所以我使用这篇文章实现了一个自定义搜索栏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">
财产?我看了,但找不到任何东西,其他所有造型搜寻条似乎都没有使用任何其他项目属性。
由于
答案 0 :(得分:0)
在花了几个小时试图找出甚至google以获得任何有用的东西之后,我已经能够通过使用选择器来实现这一点。
基本上我的axml文件使用了seekbar元素调用
android:progressDrawable="@menu/seek_style_selector"
android:thumb="@menu/seek_thumb_selector"
这些选择器文件是2个实现项目android的新文件:state_enabled =&#34; false&#34;
<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文件。否则它将继续使用正常的搜索文件。
希望这也可以帮助别人。