Wie zu Referenz aus drawable Stil
Meine app mit tabs hat zwei Themen. In jedem Thema tabs verschiedene Bilder haben, die in ausgewählten und nicht ausgewählten Zustand. Wie kann ich richtig Referenz zum Bild-Thema?
Zum Beispiel. Ich habe in themes.xml
<?xml version="1.0" encoding="utf-8"?>
<style name="LightTheme" parent="@android:style/Theme.Light">
<item name="tabShows">@drawable/ic_tab_shows_unselected_light</item>
<item name="tabShowsSelected">@drawable/ic_tab_shows_selected_light</item>
<item name="tabNews">@drawable/ic_tab_news_selected_light</item>
<item name="tabNewsSelected">@drawable/ic_tab_news_unselected_light</item>
</style>
<style name="DarkTheme" parent="@android:style/Theme.Black">
<item name="tabShows">@drawable/ic_tab_shows_unselected_dark</item>
<item name="tabShowsSelected">@drawable/ic_tab_shows_selected_dark</item>
<item name="tabNews">@drawable/ic_tab_news_selected_dark</item>
<item name="tabNewsSelected">@drawable/ic_tab_news_unselected_dark</item>
</style>
Habe auch ich ein tab_shows.xml und tab_news.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@drawable/ic_tab_shows_selected_light"/>
<item android:state_selected="false" android:drawable="@drawable/ic_tab_shows_unselected_light" />
Wie kann ich einen Verweis auf benötigte Bild im Selektor entsprechend aktuellen Thema?
Dies nicht für mich arbeiten
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="?tabShowsSelected"/>
<item android:state_selected="false" android:drawable="?tabShows" />
In layout-Dateien, das funktioniert, ich meine Referenz zu Stil über ?styleName
- Hab das gleiche Problem hier: stackoverflow.com/q/12115125/317889
- Ich mache etwas ähnliches HIER!!! stackoverflow.com/questions/17103894/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bauen Sie Ihren Stil
A
und StilB
in Ihrem Fall stellen Sie
android:drawable="@drawable/ic_tab_shows_selected_light"
statt hintergrund (ich habe gerade kopiert snipets aus meinem code)#000
Ihrem Thema Eine
Thema B
in Ihrem attr.xml
schließlich in Ihrem widget, das Sie tun
style="?pageBackground"
Finden Sie hier Ihre Antwort ein
http://www.androidengineer.com/2010/06/using-themes-in-android-applications.html
Bearbeiten
(Weitere Informationen Lukap in den Kommentaren)
themes.xml
und legen Sie die Definitionen der Stile gibt.attrs.xml
.styles.xml
.Aber Sie müssen mehr Lesen über die
attrs.xml
Stattdessen verweisen wir auf den Wert von einem anderen Attribut –
activatedBackgroundIndicator
– von unserer geerbten Thema. Was das Thema definiert als dieactivatedBackgroundIndicator
ist das, was unser hintergrund sein sollte.