Android 选项菜单。菜单顶部和底部有白色条

问题描述 投票:0回答:2

我是一名 Android 开发菜鸟。

如何删除或更改选项菜单顶部和底部条的颜色? 我已将

<item name="android:itemBackground">@color/AraLightBlue</item>
输入到“themes.xml”文件中。 效果很好。

我创建了这个样式(square_menu.xml)

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="0dp"/>
    <padding
        android:top="0dp"
        android:bottom="0dp"
        />
</shape>

并添加了

<style name="ThemeOverlay.MyTheme" parent="ThemeOverlay.AppCompat.Light">
    <item name="android:itemBackground">@color/AraLightBlue</item>
    <item name="android:popupBackground">@drawable/square_menu</item>
</style>

到主题.xml 并添加了

app:popupTheme="@style/ThemeOverlay.MyTheme"
到activity_main.xml。

我错过了什么?

android xml customization
2个回答
0
投票

使用solid参数

试试这个:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="your color"/>
    <corners android:radius="0dp"/>
    <padding
        android:top="0dp"
        android:bottom="0dp"
        />
</shape>



0
投票

要更改菜单背景的颜色,您必须创建如下样式:

<style name="ThemeMenu.PopupTheme" parent="Theme.AppCompat.Light">
    <item name="android:colorBackground">@color/ColorBackground</item>
    <item name="android:textColor">@color/ColorText</item>
</style>

然后在包含要分配标题的工具栏的布局中,您必须应用该样式。

<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:popupTheme="@style/ThemeMenu.PopupTheme" />

如果您想添加自定义背景图像而不是更改颜色,也可以通过更改样式来实现。

<style name="ThemeMenu.PopupTheme" parent="Theme.AppCompat.Light">
    <item name="android:colorBackground">@android:color/transparent</item>
    <item name="android:itemBackground">@drawable/ColorBackground</item>
    <item name="android:textColor">@color/ColorText</item>
</style>

例如,我定义了这个drawable,以便它根据主题采用默认背景颜色,并在标题下方显示菜单,分配一定的边距。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:top="?attr/actionBarSize">
        <shape>
            <corners android:radius="30dp"/>
            <padding
                android:top="?attr/actionBarSize"
                android:bottom="5dp"
                android:left="10dp"
                android:right="10dp"
                />
            <solid android:color="@color/ColorBackground" />
        </shape>
    </item>
</layer-list>

example

© www.soinside.com 2019 - 2024. All rights reserved.