Как серая панель поиска при отключении? - PullRequest
0 голосов
/ 12 апреля 2019

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

На самом деле в моем коде я хотел бы просто написать это:

mySeekBarNuance.setEnabled (истина);

И автоматически моя панель поиска становится серой. Спасибо

Ответы [ 2 ]

0 голосов
/ 12 апреля 2019

Вы можете использовать селектор в качестве фона для панели поиска

Селектор устанавливает, что вы хотите, если условие выполнено (здесь: 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>

Если этот параметр включен, панель поиска будет окрашена в зеленый цвет, в противном случае она будет серой

Вы можете сделать то же самое, если панель поиска сфокусирована, нажата и т. Д. Таким образом.

И вместо него можно установить не только цвет, но и весь рисунок

0 голосов
/ 12 апреля 2019

Сделайте это следующим образом

В вашем 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 для включенного состояния

...