gpt4 book ai didi

java - 如何在更改全屏/底部导航时使用导航组件 navhostfragment

转载 作者:行者123 更新时间:2023-12-02 10:06:25 29 4
gpt4 key购买 nike

我正在使用带有导航组件的单 Activity 多 fragment 。如何隐藏某些 fragment 的底部导航栏?

我尝试了以下方法:

  1. 通过数据绑定(bind)控制底部导航栏的可见性。(有缺陷)
  2. 在打开 fragment 之前和返回堆栈上切换底部导航可见性(有问题)
  3. 制作2个主机 fragment :1个全屏,1个由底部导航绑定(bind)
  4. 制作 2 个导航图 ..

activity_main.xml:

<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomNavigation"
android:visibility="@{viewModel.uiUtils.shouldShow ? View.VISIBLE:View.GONE}"/>

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);
}
}
});

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

最佳答案

官方文档建议使用OnDestinationChangedListener来处理这个问题。 Look here.

关于java - 如何在更改全屏/底部导航时使用导航组件 navhostfragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55890076/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com