从片段更改活动主题和徽标,附加到android.R.content

时间:2014-04-18 05:09:03

标签: android android-fragments

我的应用中有一些活动。它有主题android:theme="@android:style/Theme.Holo.Light.NoActionBar" 在AndroidManifest.xml中。此活动是片段的容器,其中只有<fragment>个标记。 所以,我从这个代码首先开始另一个片段:

Fragment newFragment = new WelcomeStep2Fragment();
            FragmentTransaction transaction = getFragmentManager().beginTransaction();

            transaction.replace(android.R.id.content, newFragment);
            transaction.addToBackStack(null);

            transaction.commit();

所以,在第二个片段中我想显示ActionBar。我有自己的主题

<style name="AppThemeColoredActionBar" parent="@android:style/Theme.Holo.Light">

但是当我写作

getActivity().setTheme(R.style.AppThemeColoredActionBar);
    getActivity().getActionBar().setLogo(getResources().getDrawable(R.drawable.ic_back_on_action_bar));

它没有用。但是,我知道这段代码无法正常工作。那么,有没有办法从第二个片段更改活动样式和徽标?

1 个答案:

答案 0 :(得分:0)

没办法。因为 为此上下文设置基本主题。请注意,应该在Context中实例化任何视图之前调用它(例如在调用setContentView(View)或inflate(int,ViewGroup)之前)。http://developer.android.com/reference/android/view/ContextThemeWrapper.html#setTheme(int)