我正在尝试从Google实施新的Jetpack Navigation框架,但遇到了问题。我想将我的第一个片段用作登录页面,并且不想在其中包含工具栏。如何从其中一个片段中删除工具栏,然后将其添加到后续片段中?
编辑:尝试查看AppBarConfiguration,但这似乎只影响后退箭头是否显示
答案 0 :(得分:3)
最终弄清楚该怎么做。根据android文档,您必须将一个OnDestinationChangedListener添加到导航控制器,然后才能在需要更改其中的常量UI元素的所有不同目标位置进行切换。
navController = Navigation.findNavController(this, R.id.nav_host_fragment);
final Toolbar toolbar = findViewById(R.id.toolbar);
navController.addOnDestinationChangedListener(new NavController.OnDestinationChangedListener() {
@Override
public void onDestinationChanged(@NonNull NavController controller, @NonNull NavDestination destination, @Nullable Bundle arguments) {
int id = destination.getId();
switch (id) {
case R.id.mainFragment:
toolbar.setVisibility(View.GONE);
break;
default:
toolbar.setVisibility(View.VISIBLE);
break;
}
}
});