Intereting Posts
Показать прогрессдиалог без текста Android Альтернативный цвет фона для класса ListView, даже без данных ScrollView автоматически прокручивает до выбираемого TextView Android, как установить изображение с процентом в relativelayout Обнаружение браузера эмулятора Android Как добавить маржу между вкладками в TabLayout? IntelliJ IDEA с Junit 4.7 "!!! Ожидается, что версия JUnit версии 3.8 или более поздней версии: В Eclipse, как я могу быстро получить доступ к источнику «проекта библиотеки Android» из источника проекта, который его использует? Как центрировать ImageView в LinearLayout? Android – Понижение растрового изображения на холсте Как изменить размер эмулятора AVD в Android Studio? Android ExoPlayer – загрузка видео (не DASH / HLS) и потоковое воспроизведение в одно и то же время Как перетащить элемент списка в другую вкладку? Проблема с дубликатом провайдера Android Android MediaMetadataRetriever возвращает нулевые значения из большинства ключей

SelectableItemBackground как элемент в списке слоев

Я скопировал файл из источника приложения Google IO Schedule ( https://github.com/google/iosched ), а именно

selected_navdrawer_item_background.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/backgroundColor"> <shape> <solid android:color="#12000000" /> </shape> </item> <item android:drawable="?android:selectableItemBackground"/> </layer-list> 

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

Это важная линия, я думаю.

 caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #22: <item> tag requires a 'drawable' attribute or child tag defining a drawable 

Строка № 22 – это

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

Я не знаю, в чем проблема, я скопировал это из источника без его корректировки. Он отлично работает в своем приложении.

Я попытался изменить ?android:selectableItemBackground на ?attr/selectableItemBackground , но это дает мне то же исключение. Кажется, я не вижу других предлагаемых решений.

Если кто-нибудь знает, что вызывает это, пожалуйста, помогите мне.

Solutions Collecting From Web of "SelectableItemBackground как элемент в списке слоев"

Это работает, но из api v21 . Итак, вы можете использовать его на устройствах с Android Lollipop и новее. Если вы хотите поддерживать более старые системные версии, вы можете поместить этот xml в папку drawable-v21 и подготовить новый xml в папке с возможностью изменения с тем же именем. Например:

рисуем / selected_navdrawer_item_background.xml

 <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#12000000" /> </shape> 

Приложение Google IO делает то же самое: вот файл из выпадающей папки и вот файл из папки drawable-v21