我已经从Google IO计划应用来源(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
,但它给了我相同的例外。
我似乎无法找到任何其他建议的解决方案。
如果有人知道造成这种情况的原因,请帮助我。
答案 0 :(得分:20)
它起作用但是来自api v21 。因此,您可以继续在 Android Lollipop 和更新版本的设备上使用它。如果您需要支持较旧的系统版本,可以将此xml放入 drawable-v21 文件夹,并在具有相同名称的drawable文件夹中准备新的xml。 例如:
<强>抽拉/ 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