2015-07-28 67 views
3

對於是否在DrawerLayout中使用RecyclerView或ListView,我有點困惑。
我讀a tutorial,它解釋瞭如何使用RecyclerView創建NavigationDrawer。
根據谷歌:RecyclerView是
1)一個顯示大量數據集的容器,通過維護有限數量的視圖可以非常有效地滾動。
2)在內部使用佈局管理器。佈局管理器在RecyclerView中定位項目視圖,並確定何時重用用戶不再可見的項目視圖。要重用(或回收)視圖,佈局管理器可能會要求適配器使用數據集中的其他元素替換視圖的內容。在NavigationDrawer中使用ListView或RecyclerView?

因爲導航抽屜中有一個非常小的數據集(標題+短列表),並且所有項目對用戶仍然可見,所以我無法從1)& 2)中的回收站視圖「功能」中獲益。
即使Google使用ListView in NavigationDrawer
我想我可以使用ListView.addHeader()爲DrawerLayout中的標題創建一個特殊的視圖。
所以我的問題是如果我更喜歡RecyclerView在ListView中DrawerLayout?

回答

0

你的解釋很好。現在回答您的問題,如果您打算將來在導航抽屜中使用可擴展列表項目,則需要準備好實現可擴展recyclerview(如果您現在使用RecyclerView,則默認情況下不存在)。所以在這種情況下,ExpandableListView將是一個更容易實施的解決方案。但是,如果您在抽屜內部不需要任何可擴展項目功能,那麼如果您使用大型數據集,則使用RecyclerView會更好。正如你所說,你有一個小數據集,我認爲這不會對你造成太大影響,如果你使用ListViewRecyclerView。仍然爲RecyclerView更靈活,爲什麼不只使用RecyclerView

您的要求,我會建議導入android design support library,這樣就可以使用NavigationView這使得它更容易通過提供你需要的抽屜式導航欄,以及通過一個菜單資源,以虛增您的導航項目的能力框架。

+0

謝謝我會看看設計支持庫。我仍在等待解答我的問題的答案。 – FilipR

+0

我也回答了你的問題。你還有什麼具體問題? –

+0

好的,我期待着一個清晰的解釋:「您應該使用ListView/RecyclerView,因爲......」。你只提到「......我不認爲它會對你使用ListView或RecyclerView產生太大的影響.... RecyclerView更加靈活,爲什麼不使用RecyclerView。」 對於我來說,我不清楚在這種情況下我如何從RecyclerView的「靈活性」中受益。 – FilipR

1

當我爲我的應用程序開發材質設計導航抽屜時,同樣的問題讓我緊張不已。

即使你可以看到RecyclerView的類概述限定

用於提供有限的窗口成一個大的數據集的柔性視圖。

而我們的導航抽屜有固定數量的項目。

所以,你可能會設置public void setHasFixedSize (boolean hasFixedSize)爲true。這將使它幾乎成爲一個ListView。

我在我的抽屜裏使用ListView,你也應該使用ListView。

+0

準確地說,如果使用RecyclerView,我會設置固定大小爲true。我仍然喜歡在NavigationDrawer中使用ListView,因爲RecyclerView做了一些簡單的事情(處理來自Activity的點擊,添加項目分隔符......)太複雜了,如果它幾乎沒有什麼區別(與ListView相比),我沒有理由選擇RecyclerView。 – FilipR

2

使用導航抽屜非常複雜,Google想出了一個更好更簡單的方式來實現抽屜NavigationView,而你的列表現在應該是一個「菜單」,你可以在一個單獨的xml文件中定義,不需要適配器了。有關如何實現它的更多信息檢查官方安卓博客here

+0

謝謝我會看看設計支持庫,我仍然在等待解答我的問題的答案。 – FilipR

相關問題