Was ich tun möchte:Android: Verwenden Sie verschiedene Themen auf Fragmente einer Aktivität
Ich möchte jedes Fragment meiner MainActivity ein anderes Thema zu verwenden, so dass die ActionBar verschiedenen Hintergrund-Farben, je nach das sichtbare Fragment.
Die Situation:
habe ich eine MainActivity, die die Tabs + Swipe-Navigation verwendet. Ich habe 7 Tabs hinzugefügt (= 7 Fragmente). Ich habe ein Theme erstellt, das nur auf das erste Fragment (fragment_main_1) angewendet werden sollte.
Hier wird das Thema:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="Blue" parent="android:Theme.Holo.Light">
<item name="android:actionBarStyle">@style/Blue.ActionBarStyle</item>
</style>
<style name="Blue.ActionBarStyle" parent="android:Widget.Holo.Light.ActionBar">
<item name="android:titleTextStyle">@style/Blue.ActionBar.TitleTextStyle</item>
<item name="android:background">#33B5E5</item>
</style>
<style name="Blue.ActionBar.TitleTextStyle" parent="android:TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">#FFFFFF</item>
</style>
</resources>
Nach dem Erstellen 6 weitere Themen sollte es möglich sein, durch den Tabs zu streichen, während die ActionBar automatisch seine Hintergrundfarbe ändern.
Was hat nicht funktioniert:
diese Zeilen hinzufügen (die ich hier auf Stackoverflow gefunden) zum Fragment1.java:
// create ContextThemeWrapper from the original Activity Context with the custom theme
final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.Blue);
// clone the inflater using the ContextThemeWrapper
LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper);
// inflate the layout using the cloned inflater, not default inflater
return localInflater.inflate(R.layout.fragment_main_1,container, false);
Ich hoffe, dass Sie mir helfen können :) Danke .
Haben Sie jemals eine Lösung finden? – jcaruso
Nein, ich gab dieses Projekt auf :( – Jonas
jemand fand eine Antwort auf diese Frage? –