带有 AppCompat 的透明叠加 ActionBar?
Transparent Overlay ActionBar with AppCompat?
我想要一个具有以下属性的 ActionBar:
- 覆盖栏,这样布局的 parent 视图将伸展到整个 window。
- ActionBar 的白色标题颜色。
- 反parent背景。
我的目标是 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>
并且,在清单中,我将 Theme.MyTheme
设置为 activity 的主题。
1 和 2 正在运行,3 未运行。看来我有 grey-ish 背景,但我不知道我应该 change/add.
试试下面的代码,这是我的 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>
我想要一个具有以下属性的 ActionBar:
- 覆盖栏,这样布局的 parent 视图将伸展到整个 window。
- ActionBar 的白色标题颜色。
- 反parent背景。
我的目标是 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>
并且,在清单中,我将 Theme.MyTheme
设置为 activity 的主题。
1 和 2 正在运行,3 未运行。看来我有 grey-ish 背景,但我不知道我应该 change/add.
试试下面的代码,这是我的 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>