selectableItemBackground 作为图层列表中的项目
selectableItemBackground as item in layer-list
我从 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
,但它给了我同样的异常。
我似乎找不到任何其他建议的解决方案。
如果有人知道是什么原因造成的,请帮助我。
它有效,但来自 api v21。因此,您可以继续在 Android Lollipop 及更高版本的设备上使用它。如果你想支持旧系统版本,你可以把这个 xml 放入 drawable-v21 文件夹,并在同名的 drawable 文件夹中准备新的 xml。
例如:
drawable/selected_navdrawer_item_background.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#12000000" />
</shape>
Google IO 应用做同样的事情:
here is file from drawable folder 和
here is file from drawable-v21 folder
我从 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
,但它给了我同样的异常。
我似乎找不到任何其他建议的解决方案。
如果有人知道是什么原因造成的,请帮助我。
它有效,但来自 api v21。因此,您可以继续在 Android Lollipop 及更高版本的设备上使用它。如果你想支持旧系统版本,你可以把这个 xml 放入 drawable-v21 文件夹,并在同名的 drawable 文件夹中准备新的 xml。 例如:
drawable/selected_navdrawer_item_background.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#12000000" />
</shape>
Google IO 应用做同样的事情: here is file from drawable folder 和 here is file from drawable-v21 folder