显示并隐藏片段中的操作栏

时间:2015-02-24 17:18:19

标签: android android-fragments

我有一个项目有一个活动和几个片段。碎片从活动中被替换。主菜单片段不应该有操作栏,但操作栏应该保留在所有其他片段上。此外,默认的后退按钮应该工作。我正在使用此代码: 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>

感谢。

1 个答案:

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