新しいナビゲーション・ドロワーを使用しようとしています。私はガイドラインに従いました、そして、私はそれが選択された項目の上で変化するセクション名タイトルと一緒に働くようにしました。今私は、私が次にしたいことをどのようにアーカイブするのか分かりませんので、立ち往生しています。ナビゲーション・ドロワーを使用してフラグメント(?)のレイアウトまたはアクティビティを変更する
ドロワーの項目をクリックすると、家のなどが表示されます。たとえば、特定の画面の特定のレイアウトで作成したすべてのものを画面に表示することができます。それはTextViews
や画像のような静的なものなので、何もする必要はありません。
ドロワーのListView
にあるすべてのアイテムのレイアウトとactivity
を作成する必要がありますか(まだ始まっていません)onItemSelected()
でアクティビティを開始しますか?それとも、私はその場で毎回の断片を作成するような何かを行うことができ、私はListView
内の項目をクリックすると言って、何か私はonItemClick()
渡されたメソッドに入れて試験として
if(homeClicked){ //use home.xml as layout }
if(contactClicked){ //use contact.xml as layout }
EDIT
のようなクリックされた配列位置にあります。テストとして、私はちょうど同じように使用:
if(position==2) { // this is "contact" in the list layout
setContentView(R.layout.contacts);
}
それがない作品が、明らかに私はDrawerLayout
にネストされていない連絡先のレイアウトのものとして引き出しを失います。ポジションをswitch
に置き換えてsetContentView()
を使用し、DrawerLayout
にネストするレイアウトを変更する代わりに、私の目標を達成するよりエレガントな方法がありますか? (それが可能だ場合は私も知っていない - おそらく、同じIDがあるとして)
を@Stefanコメントの返信に十分なスペース
おかげでステファンはありませんとしてこれを編集し、グーグルの例です。私をもっと混乱させるもの。おそらく10k回読んだことのある断片については、ちょっと卑劣なことがあるのですが、私の脳は同化しません。 Googleの例では、引き出し内のアイテムをクリックすると、新しいフラグメントが作成され、FrameLayout
のMainActivity
のxmlレイアウトの引き出しのListView
のほかに、このフラグメントが置き換えられますそれは画面のすべてのスペースを取る。そして、すべての断片は、惑星ImageView
を表示するので、コードは、項目クリックのListView
配列位置に基づいてその画像を変更するために断片に伝えます。
私は知らないので、コメントを編集しても何とかして、編集したメインの投稿がコメントスペースとして編集されました。 – kandros
Googleの例では同じフラグメントを再利用していますimageViewを切り替える引数は変わりませんが、同じようにswitchステートメントで単純に構築して、フラグメントを独自のビューとロジックを持つ完全に新しいフラグメントに置き換えることができます。 –