Android – Navigation findNavController()

發布日期:2024/11/22
瀏覽次數:26

在 Android 開發中,findNavController() 是用來操作 Navigation Component 的工具,以下詳細說明使方法的差異及使用情境:

findNavController().navigate(R.id.fragment_id)

功能

直接導航到指定的目標頁面(Fragment)。這是 Navigation Component 最常用的方式之一,用來實現頁面跳轉。

特點

適用情境

範例

findNavController().navigate(R.id.action_current_to_target)

findNavController().popBackStack(R.id.fragment_id, false)

功能

將導航堆疊回退到指定的頁面,並將目標頁面之後的頁面從堆疊中移除。

特點

適用情境

範例

findNavController().popBackStack(R.id.fragment_id, false)

findNavController().popBackStack()

功能

從導航堆疊中彈出(pop)一個頁面,返回到上一頁。

特點

適用情境

範例

findNavController().popBackStack()

navigateUp()

功能

類似於 popBackStack(),但會檢查父導航圖(Parent NavGraph),如果存在父導航則向上導航。

使用情境

用於多層級的導航圖結構,例如有子圖時的導航。

範例

findNavController().navigateUp()

clearBackStack(R.id.fragment_id)

功能

清除導航堆疊中的所有記錄,直到指定的目標頁面。

使用情境

重設導航流程,回到初始狀態。

範例

findNavController().clearBackStack(R.id.fragment_id)

選擇正確方式的建議

功能需求建議方法
簡單跳轉到新頁面navigate()
返回到特定頁面並清理堆疊popBackStack(fragment_id, false)
單純返回上一頁popBackStack() 或 navigateUp()
重設導航流程clearBackStack(fragment_id)

Like