2013-05-22 319 views
7

我試圖探索由Google標準化的新導航抽屜。最後我們也有官方的代碼。Android導航抽屜

我想了解在我的應用程序中實現相同的最佳方式。

我的應用程序的結構如下

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

在任一選項卡的任何元素的點擊它會帶我下面

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

現在我很困惑是上述所有有放置到導航抽屜的新視圖中。

而作爲導航抽屜式結構是這樣的

與含有navdraw視圖和實習生包含內容的佈局和抽屜的佈置的配置的活動。在點擊抽屜中的選項時,我應該將內容佈局全部替換,還是應該打開新的活動?

回答

3

正如在「Handle Navigation Click Events」下的Creating a Navigation Drawer文檔中詳細介紹的那樣,它使用Fragments。當用戶選擇一個選項時,您只需更換內容碎片,從而允許導航抽屜保持原位。如果你按照文檔,那麼你應該沒問題。

如果你還沒有遇到碎片,那麼值得在the documentation for Fragments上看到它們。它們就像活動一樣,有一些差異可以讓Android一次顯示多個片段。

+0

比方說,我在導航抽屜的第二個選項中有多個選項卡。我是否需要動態構建選項卡來替換屏幕上的所有內容? –

+1

您的第二項活動是否包含選項卡並不重要 - 每個屏幕都將是一個單獨的片段,您可以使用類似於視圖的XML進行配置。它可能有助於閱讀碎片一般,因爲導航抽屜只是一個特殊情況下使用碎片。 – Nick

+0

謝謝,我會閱讀它。看起來像我們可以在片段內部有標籤 –

1

答案是你可以做,也可以用新的片段切換內容,或者啓動一個新的活動。

你可以在selectItem(position)方法中自由地做任何你想做的事情。

官方文檔在他們的例子中使用片段,但它不是必需的。你可以在這個方法中做任何你想做的事情(只需從Toast或Logcat消息開始,看看單擊元素時會發生什麼)。

+3

我覺得有時Google的文檔過於複雜 - 我認爲在這個例子中增加Fragments使得它更難以遵循。我也認爲使用外部化數組作爲列表項過於複雜(對於這個例子)。 – Booger

+1

如果我啓動了新的活動,並且我希望在這些活動中再次使用導航抽屜,那麼如何實現此操作而不必反覆重寫導航抽屜顯示代碼?我嘗試了一個BaseActivity,然後從導航抽屜中調用的其他活動是它的子類。問題是,如果我對新活動有不同的佈局,則我無法訪問導航抽屜佈局。我是否需要將此導航抽屜佈局包含在活動佈局 ..? –

+0

開始一個關於此的新問題。這是一個新問題,在評論中無法解決。 – Booger