1. ホーム
  2. java

[解決済み] ナビゲーションドローワのアイテムアイコンが元の色で表示されない

2022-05-06 13:32:07

質問

ナビゲーションドローワーのメニューの項目の横にアイコンを表示させようとしているのですが、なぜかアイコンが元の色(茶色)ではなく、いつもグレーで表示されます。これを防いで、アイコンを元の色で表示させる方法はありますか?

MainActivity.java

public class MainActivity extends AppCompatActivity {

    private DrawerLayout mDrawerLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        if (navigationView != null) {
            setupDrawerContent(navigationView);
        }
    }

    private void setupDrawerContent(NavigationView navigationView) {
        navigationView.setNavigationItemSelectedListener(
                new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(MenuItem menuItem) {
                mDrawerLayout.closeDrawers();

                return true;
            }
        });
    }
}

drawer_view.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:title="Section">
        <menu>
            <item
                android:id="@+id/navigation_item_1"
                android:icon="@drawable/ic_browncircle"
                android:title="Sub item 1" />
        </menu>
    </item>
</menu>

<イグ

解決方法は?

ここに答えがありました。 https://stackoverflow.com/a/30632980/875249

リンクを回避する方法はとても簡単です。

    mNavigationView.setItemIconTintList(null);

これは、すべての状態ベースの色合いを無効にしますが、独自のリストを指定することもできます。 私はこれでうまくいきました。

カラーステートリストを作成するための詳細については、こちらをご覧ください。 http://developer.android.com/reference/android/content/res/ColorStateList.html

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_checked="true" android:color="@color/primary" />
        <item android:state_checked="false" android:color="@android:color/white" />
    </selector>