2

谷歌最近发布了适用于 Android 的 Material You (M3)。

根据设计指南,如此处所述:https ://m3.material.io/components/navigation-bar/overview ,底部导航栏的图标必须在非活动时被勾勒出来,在活动时被填充(当有合适的轮廓时)图标的版本)。

但是,在实现中,我看不到任何方法可以使图标在不活动时勾勒出来,在活动时填充。

我们是否必须上传同一个图标的两个版本,轮廓和填充,我们如何在我们的菜单资源文件中链接这两个图标?

底部导航的菜单资源文件

如材料设计文档中所见,每个菜单项仅定义一个图标。

即使处于非活动状态,这也会导致填充图标,如下所示。

在此处输入图像描述

我们如何根据其状态填充和勾勒图标?这必须以编程方式还是通过 XML 完成?

谢谢你。

4

1 回答 1

2

您必须为此制作另一个可绘制对象,您必须添加一个选定的图标和未选择的图标,例如这个

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/icon_selected" 
android:state_checked="true"/>
<item android:drawable="@drawable/icon_non_selected" 
android:state_checked="false"/>
</selector>

而不是在这里打电话

android:icon="your drawable name"
于 2021-11-18T04:43:07.687 回答