我有一个项目有一个活动和几个片段。碎片从活动中被替换。主菜单片段不应该有操作栏,但操作栏应该保留在所有其他片段上。此外,默认的后退按钮应该工作。我正在使用此代码: getActivity()。getActionBar()。hide(); 隐藏操作栏和
ActionBar actionBar = getActivity().getActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.show();
显示它。
但最让我困惑的是主题。我应该使用哪个主题才能拥有浅色背景,我应该在扩展主题如ThemeOverlay.AppCompat.ActionBar时定义textColor,background等所有属性?这个主题让UI变得一团糟。 做这一切的最佳方法是什么?
styles.xml
<!-- Base application theme. -->
<style name="AppTheme" parent="ThemeOverlay.AppCompat.ActionBar">
<item name="actionBarStyle">@drawable/actionbar_background</item>
</style>
感谢。
答案 0 :(得分:0)
您不必声明所有属性,为什么不使用默认主题。这是我如何做到的例子:
<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
<!-- Application theme -->
<style name="MyAppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:windowActionBar">true</item>
<item name="android:actionBarStyle">@style/ProjActionBar</item>
</style>
<style name="ProjActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@color/action_bar_color</item>
<item name="android:titleTextStyle">@style/ProjActionBar.TitleTextStyle</item>
</style>
<style name="ProjActionBar.TitleTextStyle" parent="@android:style/TextAppearance">
<item name="android:textColor">@color/action_bar_title_text_color</item>
<item name="android:textSize">18dp</item>
</style>
我更喜欢的另一种方式是这个:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
<style name="AppTheme.MyTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- add custom atribute if you want -->
</style>