25

私がしたいこと:

MainActivity の各 Fragment で異なるテーマを使用して、表示される Fragment に応じて ActionBar の背景色が異なるようにします。

状況:

タブ + スワイプ ナビゲーションを使用する MainActivity を作成しました。7 つのタブ (=7 フラグメント) を追加しました。最初のフラグメント (fragment_main_1) にのみ適用されるテーマを 1 つ作成しました。

ここでテーマ:

<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>

さらに 6 つのテーマを作成した後、ActionBar の背景色が自動的に変更されている間、タブをスワイプできるようになります。

うまくいかなかったもの:

Fragment1.java にこれらの行 (stackoverflow で見つけたもの) を追加します。

// 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);

あなたが私を助けてくれることを願っています:)ありがとう。

4

2 に答える 2

2

LayoutInflater localInflater = inflater.from(contextThemeWrapper);代わりに試してください。

于 2013-03-27T16:13:17.363 に答える