小编Has*_*ani的帖子

如何在更改全屏/上方导航时使用导航组件navhostfragment

我正在将单个活动多片段与导航组件一起使用。如何隐藏某些片段的底部导航栏?

我尝试了以下方法:

  1. 通过数据绑定控制底部导航栏的可见性。
  2. 在打开片段之前和在后堆栈上切换底部导航可见性(越野车)
  3. 制作2个主机片段:1个全屏,其中1个由底部导航绑定
  4. 制作2张航海图..

activity_main.xml:

<com.google.android.material.bottomnavigation.BottomNavigationView
            android:id="@+id/bottomNavigation"
            android:visibility="@{viewModel.uiUtils.shouldShow ? View.VISIBLE:View.GONE}"/>
Run Code Online (Sandbox Code Playgroud)

mainactivity.java:

    private void observeShouldShow() {
        mainViewModel.uiUtils.getShouldShow().observe(this, new Observer<Boolean>() {
            @Override
            public void onChanged(Boolean aBoolean) {
                ViewGroup.LayoutParams layoutParams = binding.bottomNavigation.getLayoutParams();
                if (mainViewModel.getUiUtils().getShouldShow().getValue()) {
                    binding.bottomNavigation.setVisibility(View.VISIBLE);

                    layoutParams.height = 170;
                    binding.bottomNavigation.setLayoutParams(layoutParams);
                } else {
                    layoutParams.height = 0;
                    binding.bottomNavigation.setLayoutParams(layoutParams);

                 binding.bottomNavigation.setVisibility(View.INVISIBLE);
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

在全屏片段和普通片段之间切换时,底部导航栏闪烁

java android android-architecture-components

6
推荐指数
1
解决办法
219
查看次数