Для использования ссылок на темы в чертежах XML требуется уровень API 21.

Есть ли способ сделать следующий код совместимым с более низкими уровнями API:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="?android:attr/selectableItemBackground"/>

    <item android:gravity="bottom">
        <shape android:shape="rectangle">
            <size android:height="1px"/>
            <solid android:color="#ccc"/>
        </shape>
    </item>

</layer-list>

Часть: android:drawable="?android:attr/selectableItemBackground" выдает это сообщение:

Для использования ссылок на темы в чертежах XML требуется уровень API 21 (текущий минимум 15).


person Mir-Ismaili    schedule 14.01.2017    source источник


Ответы (2)


используйте 1_

person Saurabh    schedule 14.01.2017
comment
Это удаляет сообщение времени разработки, но вызывает ошибку времени выполнения: <item> tag requires a 'drawable' attribute or child tag defining a drawable на более старых API (я тестировал его на API 17 и 19). - person Mir-Ismaili; 14.01.2017

Создайте файл attars.xml в папке значений.

В файле attars.xml создайте элемент для selectableItemBackground:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <attr name="selectableItemBackground" format="reference" />
</resources>

В вашем styles.xml определите этот атрибут с помощью вашего drawable:

<item name="selectableItemBackground">@drawable/yourDrawable</item>

А затем в своем файле с возможностью рисования укажите атрибут:

<item android:drawable="?attr/selectableItemBackground"/>
person MRK    schedule 06.04.2018