[英]android - How to implement navigation with bottom app bar
我有一個具有以下4種布局的項目:
我實際上有1個活動,其中包含一個底部的應用程序欄和片段被注入的NavHostFragment。 主片段是主視圖。 有一個“管理”和“設置”片段,它們都是頂層視圖(例如主視圖),但彼此不依賴。 可以通過單擊導航抽屜中的項目來切換這3個片段。 為簡化起見,我正在嘗試新的導航體系結構組件。
現在我有一些設計問題:
1.1還是應該在管理片段中顯示底部的應用欄? 也許只是Up插入符號的頂部欄。
1.2或底部應用欄+頂部欄和上插入符號
1.3以及抽屜圖標呢,我應該在Mgmt片段中顯示它嗎?
我應該對“設置”片段使用片段還是活動? 使用片段時,我必須將底部的應用程序欄移到片段中。 否則,底部的應用欄將在“設置”片段中可見
管理片段只有一個回收者視圖。 單擊一個項目應打開一個DetailView。 我應該在這里使用片段還是活動?
我閱讀了有關導航體系結構組件的文檔,並且有關於自定義目的地的部分。 另外,ich檢查了源代碼並知道片段已被替換。 此外,我檢查了一些常用的Apps,它們如何通過導航抽屜實現導航,並注意到,它們都替換了片段。 為什么沒有人隱藏/顯示片段,有理由不這樣做嗎? 假設我們有一個帶有listview的片段,其中包含從數據庫或其他昂貴任務收集的數據。 那么顯示/隱藏這些片段而不是替換它們會更好嗎?
抱歉,這是我的第一個應用程序,我對此主題感到非常困惑,而且似乎沒有官方的建議,甚至Material Design指南也沒有對此提供參考。
你會怎么做?
工具欄上的setupWithNavController(或BottomAppBar之類的子類)僅設置向上圖標和標題-它們不連接添加到工具欄的菜單項。
根據菜單項文檔的綁定目標,您必須設置自己的偵聽器並調用onNavDestinationSelected()。 對於BottomAppBar,可以通過設置Toolbar.OnMenuItemClickListener來完成:
val navController = Navigation.findNavController(this, R.id.navigation_fragment)
myBottomBar.replaceMenu(R.menu.menu_with_nav_item)
myBottomBar.setupWithNavController(navController)
// Connect MenuItems to the NavController
myBottomBar.setOnMenuItemClickListener { menuItem ->
menuItem.onNavDestinationSelected(navController)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.