【发布时间】:2019-09-17 07:03:15
【问题描述】:
我正在使用带有导航组件的单个活动多片段。如何隐藏某些片段的底部导航栏?
我尝试了以下方法:
- 通过数据绑定控制底部导航栏的可见性。(buggy)
- 在打开片段之前切换底部导航可见性和在后台(越野车)
- 制作2个宿主片段:1个全屏,1个底部导航绑定
- 制作 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);
}
}
});
在全屏片段和普通片段之间切换时底部导航栏闪烁
【问题讨论】:
-
您好,请问您是如何管理底部导航栏的可见性的?
标签: java android android-architecture-components