Xamarin Android Custom Seekbar Look - 已禁用

时间:2018-06-11 19:47:44

标签: c# android xamarin xamarin.android

我正在编写一个使用搜索栏来控制音量的应用。我希望搜索栏更厚,所以我使用这篇文章实现了一个自定义搜索栏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">财产?我看了,但找不到任何东西,其他所有造型搜寻条似乎都没有使用任何其他项目属性。

由于

1 个答案:

答案 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文件。否则它将继续使用正常的搜索文件。

希望这也可以帮助别人。