首页 > 解决方案 > Android 工具栏菜单项背景

问题描述

如何在 Youtube 应用程序中为下面 YouTube 应用程序屏幕截图右上角的用户名图标实现样式效果?

YouTube 应用截图

目前,我的应用程序有以下样式

<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/color_accent</item>
    <item name="otpViewStyle">@style/OtpWidget.OtpView</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:actionMenuTextAppearance" >@style/home_menu_style</item>
</style>

<style name="home_menu_style" parent="AppTheme">
    <item name="android:textSize">20sp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:actionMenuTextColor">@color/white</item>
</style>

另一个问题是文本颜色是黑色,而不是白色。我在样式和工具栏定义中将文本颜色定义为白色

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/primary"
        android:minHeight="?attr/actionBarSize"
        android:theme="@style/AppTheme.AppBarOverlay"
        app:popupTheme="@style/AppTheme.PopupOverlay"
        app:titleTextColor="@color/white">
    </androidx.appcompat.widget.Toolbar>

我的申请截图

标签: androidxmlandroid-stylesandroid-menu

解决方案


制作一个像下面这样的可绘制文件

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
    android:color="#48b3ff"/>

并像这样使用。

<style name="home_menu_style" parent="AppTheme">
<item name="android:textSize">20sp</item>
<item name="android:textStyle">bold</item>
<item name="android:backGround">@drawable/your_custom_drawable</item>
<item name="android:actionMenuTextColor">@color/white</item>


推荐阅读