使用AppCompat透明叠加ActionBar?

时间:2015-08-31 08:26:26

标签: android android-actionbar android-appcompat

我想要一个具有以下属性的ActionBar:

  1. 覆盖栏,以便布局的父视图将拉伸到整个窗口。
  2. ActionBar的白色标题颜色。
  3. 透明背景。
  4. 我的目标是API 14+,AppCompat-v7:22.2.1。所以我准备这样的样式:

    <style name="Theme.MyTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
        <item name="android:actionBarStyle">@style/Theme.MyTheme.MyActionBar</item>
        <item name="actionBarStyle">@style/Theme.MyTheme.MyActionBar</item>
    
        <item name="colorPrimary">#5af142</item>
        <item name="colorPrimaryDark">#06dd09</item>
        <item name="colorAccent">#20f304</item>
    </style>
    
    <style name="Theme.MyTheme.MyActionBar" parent="@style/Widget.AppCompat.ActionBar">
        <item name="android:background">@android:color/transparent</item>
        <item name="background">@android:color/transparent</item>
        <item name="android:windowActionBarOverlay">true</item>
        <item name="windowActionBarOverlay">true</item>
        <item name="android:textColor">@android:color/white</item>
    </style>
    

    而且,在Manifest中,我将Theme.MyTheme设置为我的活动的主题。

    1&amp; 2正在工作,3则不工作。它接缝我得到了灰色背景,我不知道应该更改/添加什么。

1 个答案:

答案 0 :(得分:3)

试试下面的代码,这是我的styles.xml

<resources>

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!--<item name="android:windowActionBarOverlay">true</item>

    <item name="windowActionBarOverlay">true</item>-->
    <item name="android:windowActionBarOverlay">true</item>
    <item name="android:actionBarStyle">@style/MyActionBar</item>

    <!-- Support library compatibility -->
    <item name="windowActionBarOverlay">true</item>
    <item name="actionBarStyle">@style/MyActionBar</item>

    <item name="android:windowContentOverlay">@null</item>
</style>

<!-- ActionBar styles -->
<style name="MyActionBar"
    parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@color/transparent</item>
    <item name="android:titleTextStyle">@style/Theme.YourTheme.Styled.ActionBar.TitleTextStyle</item>
    <!-- Support library compatibility -->
    <item name="background">@color/transparent</item>
    <item name="titleTextStyle">@style/Theme.YourTheme.Styled.ActionBar.TitleTextStyle</item>

</style>


<style name="Theme.YourTheme.Styled.ActionBar.TitleTextStyle" parent="@android:style/Widget.TextView">
    <item name="android:textSize">13sp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textColor">@android:color/white</item>

    <item name="textSize">13sp</item>
    <item name="textStyle">bold</item>
    <item name="textColor">@android:color/white</item>
</style>


</resources>