【发布时间】:2015-07-09 05:42:01
【问题描述】:
我正在尝试在片段上应用特定主题。但由于某种原因,它没有发生。谁能指出我的代码中的错误?还是更好的解决方案?
styles.xml 中的主题:
<!-- Theme for trans actionbar -->
<style name="TransTheme" parent="@style/AppTheme">
<item name="android:actionBarStyle">@style/TransActionbar</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="actionBarStyle">@style/TransActionbar</item>
<item name="windowActionBarOverlay">true</item>
</style>
@style/TransActionbar 在哪里:
<!-- Actionbar style for trans theme -->
<style name="TransActionbar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/first_trans_actionbar</item>
<item name="background">@color/first_trans_actionbar</item>
</style>
我想如何在 onCreateView() 方法中的片段中应用主题:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//set theme
final Context contextWrapper = new ContextThemeWrapper(getActivity(), R.style.TransTheme);
LayoutInflater localInflater = inflater.cloneInContext(contextWrapper);
contentView = localInflater.inflate(R.layout.fragment_movie_detail,
container, false);
return contentView:
}
出于某种原因,Fragment 保留了旧主题..
编辑
所以基本上问题归结为:如何在 Activity 的一个片段中使 Actionbar 透明(和覆盖模式)?
【问题讨论】:
-
您是否在清单中应用您的主题?
-
@Sassa 我试图在导航到另一个片段后立即更改清单中应用的主题。
-
我明白了;您是在
application还是在清单中的activity标记中应用原始主题? -
@Sassa 在应用程序标签中应用了一个整体主题,我尝试用上面的代码覆盖该主题。但它似乎不起作用。
-
工具栏是 v7 支持库的一部分,所以是的,它可以在 Android 2.1.x 上运行。