Android API 20 или Lower Change Spinner Подчеркните цвет программно - PullRequest
0 голосов
/ 05 июля 2018

Мой вопрос отличается от вопроса выше.

Я использую тему appcompat для своего приложения и использую setBackgroundTintList (), чтобы установить цвет подчеркивания блесны, и это работает. Тем не менее, в документации говорится, что Это всегда будет действовать при работе на API v21 или новее. Буду очень признателен, если кто-нибудь знает, как я могу изменить цвет подчеркивания API v20 и ниже.

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

Обновление Итак, теперь я могу изменить цвет значка треугольника на Android API 20, изменив Spinner на AppCompatSpinner и используя ViewCompat.SetBackgroundTintList (). Чтение документа, счетчик должен реализовать TintableBackgroundView для API 20 или ниже. AppCompatSpinner реализует TintableBackgroundView. Тем не менее, я до сих пор не вижу подчеркивания :(

1 Ответ

0 голосов
/ 06 июля 2018

ВЫ МОЖЕТЕ ИСПОЛЬЗОВАТЬ XML В КАЧЕСТВЕ ФОНА, ПОТОМУ ЧТО ФОН НАХОДИТСЯ В ВСЕХ ВЕРСИЯХ API. СДЕЛАЙТЕ СВОЮ ПОЛЬЗОВАТЕЛЬСКУЮ ПЛАНИРОВКУ XML ДЛЯ СПИННЕРА. ПРИМЕР ЕСТЬ

<selector xmlns:android="http://schemas.android.com/apk/res/android">

  <item>
    <layer-list>
       <item>
            <shape android:shape="rectangle">
                <solid android:color="@color/white" />
                <stroke android:width="2px" android:color="@color/darkgray_7" />
                <corners android:radius="5dp" />
            </shape>
       </item>

       <item>
            <bitmap
                android:gravity="right" android:src="@drawable/arrow" />
       </item>
    </layer-list>
  </item>

</selector>
...