有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使customActionBar透明并更改其文本颜色?

我想让ActionBar在整个应用程序中都透明,并且在ActionBar中将文本颜色更改为白色。我尝试将安卓:background设置为null,但没有效果。我仍然在下面的代码中得到一个带有黑色文本的白色操作栏:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.MaterialComponents.Light">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/app_white</item>
        <!--item name="colorPrimaryDark">@color/colorPrimaryDark</item-->
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <!--item name="colorAccent">@color/colorAccent</item-->
        <item name="colorAccent">#1da1f2</item>

<!--        <item name="actionBarStyle">@style/MyActionBar</item>-->
<!--        <item name="安卓:actionBarStyle">@style/MyActionBar</item>-->

    </style>

    <style name="MyActionBar" parent="@安卓:style/Widget.ActionBar">
        <item name="安卓:background">@null</item>
        <item name="background">@null</item>
        <item name="fontFamily">@font/mukta_bold</item>
        <item name="titleTextStyle">@style/MyActionBarTitle</item>
        <item name="actionMenuTextColor">@color/app_white</item>

    </style>

<!--    <style name="MyActionBar.MenuTextStyle"-->
<!--        parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">-->
<!--        <item name="安卓:textColor">@color/app_light_black</item>-->
<!--    </style>-->

    <style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="安卓:textColor">@color/app_white</item>
    </style>

    <style name="Switch_Style">
        <item name="安卓:textColor">#000000</item>
        <item name="安卓:textSize">15sp</item>
        <item name="安卓:textStyle">bold</item>
    </style>

    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

    <style name="CustomTheme" parent="Theme.MaterialComponents.Light.NoActionBar"/>

    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.MaterialComponents.Dark.ActionBar" />

    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.MaterialComponents.Light" />

    <style name="Widget.MyApp.MyButton" parent="Widget.MaterialComponents.Button">
        <item name="backgroundTint">?attr/colorSecondary</item>
    </style>

</resources>

共 (1) 个答案

  1. # 1 楼答案

    您应该在AppBar的主题中使用colorControlNormal标志

    <style name="appBarTheme" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
        <item name="colorControlNormal">@android:color/white</item>
        <item name="android:textColorPrimary">@android:color/white</item>
    </style>
    

    AppBarLayout中,使用背景作为透明

    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/transparent"
        android:theme="@style/appBarTheme">
        ...........
    </com.google.android.material.appbar.AppBarLayout
    

    将应用程序的BaseTheme设置为NoActionBar,以便您可以在活动/片段中创建自定义操作栏-

    <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    

    快乐编码