我是一名 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。
我错过了什么?
使用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>
要更改菜单背景的颜色,您必须创建如下样式:
<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>