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中当前选定的项目。 我的问题是,当我启动我的应用程序,它会引发exception。

这是我想的重要路线。

 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 to ?attr/selectableItemBackground ,但它给了我同样的例外。 我似乎无法find任何其他build议的解决scheme。

如果有人知道这是什么原因,请帮助我。

它的工作原理,但从AVI v21 。 所以,你可以继续使用Android设备和更新的棒棒糖 。 如果你想支持较旧的系统版本,你可以把这个xml放入drawable-v21文件夹,并在同名的可绘制文件夹中准备新的xml。 例如:

绘制/ selected_navdrawer_item_background.xml

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

谷歌IO应用程序做同样的事情: 这里是来自drawable文件夹的文件 , 这里是来自drawable-v21文件夹的文件