2015-02-10 5 views
21

ich eine Datei aus dem Google IO Schedule App Quelle kopiert haben (https://github.com/google/iosched) nämlichselectableItemBackground als Element in der Schicht-Liste

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> 

Ich will das Highlight verwenden das aktuell ausgewählte Element in einem NavigationDrawer. Mein Problem ist, wenn ich meine App starte, löst es eine Ausnahme aus.

Dies ist die wichtige Linie, die ich denke.

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

Linie # 22 ist dies ein

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

Ich weiß nicht, was das Problem ist, kopiert ich diese über von der Quelle, ohne sie einzustellen. Es funktioniert gut in ihrer App.

Ich habe versucht, ?android:selectableItemBackground zu ?attr/selectableItemBackground zu ändern, aber es gibt mir die gleiche Ausnahme. Ich kann keine anderen vorgeschlagenen Lösungen finden.

Wenn jemand weiß, was das verursacht, bitte hilf mir.

+0

Verwenden Sie AppCompat Bibliothek? –

+0

Ich habe dies nicht mehr getestet, aber ich nehme an, dass dies als Workaround verwendet werden kann. http://stackoverflow.com/questions/26686250/material-effect-on-button-with-background-color – SnyersK

+0

Ich habe es getestet und es funktioniert wie ein Charme in meinem Projekt. –

Antwort

16

Es funktioniert aber von api v21. So können Sie fortfahren und es auf Geräten mit Android Lollipop und neuer verwenden. Wenn Sie ältere Systemversionen unterstützen möchten, können Sie diese XML-Datei in den Ordner drawable-v21 legen und ein neues XML-Dokument in einem gleichnamigen Ordner erstellen. Zum Beispiel:

ziehbar/selected_navdrawer_item_background.xml

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

Google IO App tut das Gleiche: here is file from drawable folder und here is file from drawable-v21 folder

+0

Keine Ahnung, warum diese Antwort negativ war (ich habe sie erhöht), da sie absolut gültig ist. Vielen Dank! – NightSkyDev