私は今、かなり長い間これを理解しようとしてきました。このサイトや他の多くのサイトを調べましたが、機能するものが見つかりません。ナビゲーション ドロワーの各アイテムの横にアイコンが欲しいだけです。現在、Google のナビゲーション ドロワー サンプル アプリが使用している方法を使用しています。
MainActivity.java には次のものがあります。
mColorTitles = getResources().getStringArray(R.array.colors_array);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
mColorIcons = getResources().getStringArray(R.array.color_icons);
adapter = new ArrayAdapter<String>(this, R.layout.drawer_list_item, mColorTitles);
// set a custom shadow that overlays the main content when the drawer opens
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
// set up the drawer's list view with items and click listener
mDrawerList.setAdapter(adapter);
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
私の drawer_list_item.xml:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:gravity="center_vertical"
android:paddingLeft="5dp"
android:paddingRight="16dp"
android:textColor="#000"
android:background="?android:attr/activatedBackgroundIndicator"
android:minHeight="?android:attr/listPreferredItemHeightSmall"/>
現時点では、ナビゲーション ドロワーに配列のカラー タイトルを表示させるだけです。別の配列に必要なアイコンがあり、色に関連付けたいのとまったく同じ順序に従います。その配列からナビゲーション項目にアイコンを挿入する方法さえわかりません
それが役立つ場合は、strings.xml で配列がどのように見えるかを次に示します (完全なコードではありません)。
<string-array name="colors_array">
<item>Home</item>
<item>Cherry</item>
<item>Crimson</item>
...
<array name="color_icons">
<item>@drawable/homeicon</item>
<item>@drawable/cherryicon</item>
<item>@drawable/crimsonicon</item>
...
drawer_list_item にドローアブルを配置しようとしましたが、(もちろん) 常に同じものがそこに配置されます。色によって変える方法が思いつきませんでした。私はAndroidプログラミングに比較的慣れていないので、単純なものが欠けている場合は申し訳ありません. これは基本的に、アプリケーションを Play ストアに公開する前に行う必要がある最後の作業です。前もって感謝します!