2

Google は最近、Android 用の Material You (M3) をリリースしました。

https://m3.material.io/components/navigation-bar/overviewに記載されているように、設計ガイドラインによると、下部のナビゲーション バーのアイコンは、非アクティブなときに輪郭を描き、アクティブなときに塗りつぶす必要があります (適切な輪郭がある場合)。アイコンのバージョン)。

ただし、実装では、アイコンが非アクティブのときに輪郭を描き、アクティブのときにアイコンを塗りつぶす方法がわかりません。

同じアイコンのアウトラインと塗りつぶしの 2 つのバージョンをアップロードする必要がありますか? メニュー リソース ファイルでこれら 2 つのアイコンをどのようにリンクしますか?

ボトム ナビゲーション用のメニュー リソース ファイル

マテリアル デザインのドキュメントにあるように、メニュー項目ごとに 1 つのアイコンのみが定義されています。

これにより、以下に示すように、非アクティブな状態でもアイコンが塗りつぶされます。

ここに画像の説明を入力

状態に基づいてアイコンを塗りつぶし、輪郭を描くにはどうすればよいでしょうか? これはプログラムまたは 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 に答える