【问题标题】:NavigationUI with BottomNavigationView and multiple fragments: disable ActionBar up/back button带有 BottomNavigationView 和多个片段的 NavigationUI:禁用 ActionBar 上/后退按钮
【发布时间】:2019-12-14 11:51:58
【问题描述】:

我有一个 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

【问题讨论】:

    标签: android android-jetpack android-jetpack-navigation


    【解决方案1】:

    在您的设置(底部导航视图 + 工具栏 + 每个底部栏项目的片段)中,正确实施时不应该有向上/后退按钮。需要多个步骤来实现,请在您的实现中参考这个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.:我不得不提一下,系统后退按钮在此设置中有效(并且应该)。它的工作原理是这样的:如果您在底栏的第二个选项卡上并且用户按下系统返回,用户将被导航到底栏的第一个选项卡。只有当用户在底栏的第一个选项卡上按下系统时,应用程序才会关闭。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-17
      • 1970-01-01
      相关资源
      最近更新 更多