簡體   English   中英

帶有BottomNavigationView 和多個片段的NavigationUI:禁用ActionBar 向上/后退按鈕

[英]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.

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