2013-05-22 14 views
7

私はGoogleが標準化した新しいナビゲーションドロワを探索しようとしていました。最後に公式コードもあります。Androidナビゲーション引き出し

私はアプリで同じものを実装するための最良の方法を理解しようとしていました。タブのいずれかの内の任意の要素のクリックで

-MainActivity 
----Featured Tab 
----Favorites Tab 

を次のようにアプリの

私の構造が、それは私が混乱していますが、上記のすべてである今

ContentActivity 
----Info Tab 
----Map Tab 

の下に私を取るだろうしていますNav Drawerの新しいビューに配置します。

そして、ナビゲーションドロワー構造としては、コンテンツのレイアウトや引き出しのレイアウトを含むnavdrawビューやインターンを含むレイアウトで、このような何か

活動です。引き出しのオプションをクリックすると、コンテンツのレイアウトがすべて置換されるか、新しいアクティビティを開く必要がありますか?

答えて

3

"Handle Navigation Click Events"のCreating a Navigation Drawerのドキュメントで詳しく説明しているように、これはフラグメントを使用して動作します。ユーザーがオプションを選択すると、コンテンツの断片のみが置き換えられ、ナビゲーションドロワーはその位置にとどまることができます。あなたがドキュメントに従うなら、あなたは大丈夫でしょう。

Fragmentsにまだ遭遇していない場合は、the documentation for Fragmentsでそれらを読む価値があります。彼らは、一度にAndroidが複数のフラグメントを表示できるようにいくつかの違いがあるのと同じような活動です。

+0

私は、nav drawerの2番目のオプションに複数のタブがあるとします。私は、画面1からすべてのコンテンツを置き換えるために動的にタブを構築する必要がありますか? –

+1

2つ目のアクティビティにタブがあるかどうかは関係ありません。各画面は、ビューと同様にXMLで構成できる別個のフラグメントになります。ナビゲーション・ドロワはフラグメントの特殊な使用に過ぎないので、一般的にはフラグメントで読むことが役に立ちます。 – Nick

+0

私はそれを読んでいただきありがとうございます。フラグメント内にタブがあるように見える –

1

答えは、どちらかを行うことができます。コンテンツを切り替えるか、新しいFragmentを使用するか、新しいアクティビティを起動できます。

selectItem(position)メソッドで自由に操作できます。

公式ドキュメントでは、例のFragmentsを使用していますが、必須ではありません。このメソッドで必要なことをすることができます(要素がクリックされたときの動作を確認するには、ToastまたはLogcatメッセージから始めます)。

+3

私は時々、Googleのドキュメントが複雑すぎると感じています。この例にFragmentsを追加すると、それを続行するのが難しくなります。私はまた、リスト項目のために外部化された配列を使用することは、(この例では)あまりにも複雑であると思います。 – Booger

+1

新しいアクティビティを起動しても、そのアクティビティで再度ナビゲーション・ドロワを使用したい場合は、ナビゲーション・ドロワーの表示コードを何度も書き直すことなくこれを実装するにはどうすればよいですか?私はBaseActivityを試しました。ナビゲーション・ドロワから呼び出される他のアクティビティはサブクラスです。問題は、新しい活動のレイアウトが違うと、ナビゲーションドロワーのレイアウトにアクセスできないということです。このナビゲーション用のレイアウトをアクティビティレイアウト ..に含める必要がありますか? –

+0

これについて新しい質問を開始してください。これは新しい問題であり、コメントで取り上げることはできません。 – Booger

関連する問題