この質問に対する答えを求めて Web を探しましたが、Android の公式ドキュメントでも答えが見つからないようです。
Android の新しいナビゲーション ドロワー レイアウトを実装するアプリを作成中です。このレイアウトのドキュメントは、こことここにあります。
設計ドキュメントだけでなく、Facebook や Google Currents などの多くの一般的なアプリでも、ドロワー アイテムの前にアイコンが表示されています。
設計ドキュメント自体は、「ナビゲーション ドロワーのコンテンツ」の下にそれらについて言及しています。
ナビゲーション ターゲットには、オプションの先頭のアイコンと末尾のカウンターを含めることができます。カウンターを使用して、対応するビューのデータの状態が変化したことをユーザーに通知します。
残念ながら、開発者向けドキュメントには、この設定でアイコンを実装する方法については言及されていません。アイテムのリストを次のように実装する方法について説明します。
public class MainActivity extends Activity {
private String[] mPlanetTitles;
private ListView mDrawerList;
...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPlanetTitles = getResources().getStringArray(R.array.planets_array);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
// Set the adapter for the list view
mDrawerList.setAdapter(new ArrayAdapter<String>(this,
R.layout.drawer_list_item, mPlanetTitles));
// Set the list's click listener
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
...
}
}
それらの実装は getStringArray() を使用しているため、行項目の xml を変更してアイコンを含める方法は考えられません。
多くのアプリは各テキスト項目の前にアイコンを実装しているようで、デザインのドキュメントではアイコンの追加についても言及されているため、これは不可解です。これらのアイコンを追加するには、簡単な API 呼び出しが必要だと思いますが、これまでに見つけた唯一の実装は、とてつもなく複雑に思えます。
Navigation Drawer アイテムにアイコンを追加する方法を知っている人はいますか? 単純な API 呼び出しでこれを行う方法はありますか、またはこれらすべての企業 (Facebook、Google など) が問題を回避する方法を見つけなければなりませんでしたか?
みんな、ありがとう。