新しいNavigation Drawerを使用しようとしています。私はガイドラインに従い、セクション名のタイトルが選択された項目で変更されるなどの操作を行うことができました。次にやりたいことをアーカイブする方法がわからないので、今は行き詰まっています。
ドロワー内のアイテムをクリックすると、たとえばhome、特定の画面の特定のレイアウトで作成したすべてのものがある画面に移動したいと思います。や画像などはすべて静的なものなTextViews
ので、何もする必要はありません。
activity
引き出しのすべてのアイテムの と レイアウトを作成し、ListView
(まだ方法がわからない) でアクティビティを開始する必要がありonItemSelected()
ますか? ListView
または、アイテムをクリックして次のように言うたびに、その場でフラグメントを作成するようなことはできますか
if(homeClicked){ //use home.xml as layout }
if(contactClicked){ //use contact.xml as layout }
編集
onItemClick()
テストとして、クリックされた配列位置を渡すメソッドを入れました。テストとして、私は次のように使用しました:
if(position==2) { // this is "contact" in the list layout
setContentView(R.layout.contacts);
}
それは機能しますが、連絡先のレイアウトがDrawerLayout
. switch
オンポジションを使用してsetContentView()
レイアウトを変更してネストする代わりに、私の目標を達成するためのよりエレガントな方法はありDrawerLayout
ますか? (それが可能かどうかさえわかりません-同じIDがあるため、おそらく不可能です)
コメントの返信に十分なスペースがないため、@Stefanがこれを編集しました
Stefan に感謝します。Google の例は、私をさらに混乱させるものです。おそらく10,000回読んだフラグメントには、ほんの少しの卑劣なことがあると確信していますが、私の脳は同化を拒否しています. 私が理解している限り、Google の例では、ドロワー内のアイテムをクリックすると、新しいフラグメントが作成され、このフラグメントがxml レイアウトのListView
ドロワー以外にある唯一のものを置き換えます。画面のスペース。次に、すべてのフラグメントは惑星を表示するだけなので、コードはフラグメントに、項目クリックの配列位置に基づいてその画像を変更するように指示します。MainActivity
FrameLayout
ImageView
ListView