Xamarin Android Custom Seekbar Look - отключено - PullRequest
0 голосов
/ 11 июня 2018

Я пишу приложение, которое использует панели поиска для управления громкостью.Я хотел, чтобы панели поиска были толще, поэтому я реализовал пользовательскую панель поиска с помощью этого сообщения Android - Как изменить толщину SeekBar по умолчанию?

Все отлично работает, кроме тех случаев, когда я хочу отключитьконтроль, он отключает, как это должно быть функционально, но визуально не меняет его внешний вид.Перед применением пользовательской панели поиска отключение элемента управления сделает его визуально серым, чтобы пользователь знал, что он отключен.

Кто-нибудь знает, какой пользовательский элемент управления я не должен стилизовать?

<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 голосов
/ 11 июня 2018

Ну, потратив еще несколько часов, пытаясь выяснить, какие слова даже в Google, чтобы получить хоть что-то полезное, я смог добиться этого с помощью селектора.

В основном мой файл axml, который использует элемент searchbar, вызывает

android:progressDrawable="@menu/seek_style_selector"
android:thumb="@menu/seek_thumb_selector"

, и эти файлы селектора представляют собой 2 новых файла, которые реализуют элемент 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, который имеет различные значения непрозрачности для элементов.В противном случае он продолжит использовать обычный файл поиска.

Надеюсь, это может помочь кому-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...