簡體   English   中英

android-如何使用底部應用欄實現導航

[英]android - How to implement navigation with bottom app bar

我有一個具有以下4種布局的項目:

在此處輸入圖片說明

我實際上有1個活動,其中包含一個底部的應用程序欄和片段被注入的NavHostFragment。 主片段是主視圖。 有一個“管理”和“設置”片段,它們都是頂層視圖(例如主視圖),但彼此不依賴。 可以通過單擊導航抽屜中的項目來切換這3個片段。 為簡化起見,我正在嘗試新的導航體系結構組件。

現在我有一些設計問題:

  1. 我是否應該將底部的應用欄移動到片段中,以使它們彼此不依賴並且FAB按鈕具有其他操作,否則當片段切換時,我必須在活動中更改onClickListener?

1.1還是應該在管理片段中顯示底部的應用欄? 也許只是Up插入符號的頂部欄。

1.2或底部應用欄+頂部欄和上插入符號

1.3以及抽屜圖標呢,我應該在Mgmt片段中顯示它嗎?

  1. 我應該對“設置”片段使用片段還是活動? 使用片段時,我必須將底部的應用程序欄移到片段中。 否則,底部的應用欄將在“設置”片段中可見

  2. 管理片段只有一個回收者視圖。 單擊一個項目應打開一個DetailView。 我應該在這里使用片段還是活動?

  3. 我閱讀了有關導航體系結構組件的文檔,並且有關於自定義目的地的部分。 另外,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM