[英]NavigationUI with BottomNavigationView and multiple fragments: disable ActionBar up/back button
我有一個 BottomNavigationView 和一組片段,它們是它的第一級目的地。 我想為這些片段從 ActionBar 禁用后退按鈕。 我怎樣才能做到這一點?
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
navView = findViewById(R.id.nav_view);
NavHostFragment navHostFragment = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);
if (navHostFragment != null) {
NavigationUI.setupWithNavController(navView, navHostFragment.getNavController());
NavigationUI.setupActionBarWithNavController(this, navHostFragment.getNavController());
}
}
R.layout.activity_main
沒有明確包含工具欄,我使用以下主題: Theme.MaterialComponents.Light.DarkActionBar
在您的設置(底部導航視圖 + 工具欄 + 每個底部欄項目的片段)中,正確實施時不應該有向上/后退按鈕。 實現需要多個步驟,請在你的實現中參考這個https://github.com/android/architecture-components-samples/tree/master/NavigationAdvancedSample - 它基本上有完整的解決方案。 關鍵是使用https://github.com/android/architecture-components-samples/blob/master/NavigationAdvancedSample/app/src/main/java/com/example/android/navigationadvancedsample/NavigationExtensions.kt
PS.:我不得不提到系統后退按鈕在這個設置中工作(它應該)。 它的工作原理是這樣的:如果您在底部欄的第二個選項卡上並且用戶按系統返回,用戶將被導航到底部欄的第一個選項卡。 只有當用戶在底部欄的第一個選項卡上按下系統時,應用程序才會關閉。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.