android - 具有 AppCompat 的透明覆盖 ActionBar?

标签 android android-actionbar android-appcompat

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

  1. 覆盖栏,以便布局的父 View 将拉伸(stretch)以充满整个窗口。
  2. ActionBar 的白色标题颜色。
  3. 透明背景。

我的目标是 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>

并且,在 list 中,我将 Theme.MyTheme 设置为我的 Activity 主题。

1 和 2 有效,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>

关于android - 具有 AppCompat 的透明覆盖 ActionBar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32306891/

相关文章:

android - 选择项目后如何完全折叠 SearchView?

android - Android 操作栏上的左菜单图标

android - 查看重叠的应用程序兼容性支持操作栏?

android - 菜单键在 AppCompat 中不起作用

java - Android - 第一次询问时电池电量为空

iphone - 当今最常用的跨平台移动应用程序开发框架是什么?

android - 如何像其他应用程序(例如 whatspp、shareit)一样在所有设备的 Android/data 文件夹中显示我的应用程序的包名称文件夹

java - 禁用文本输入的 Android 键盘 [仅限表情符号键盘]

Android在 GridView 上制作操作栏覆盖

Android Studio 使用单独的资源文件夹设置 AppCompat