android - 如何在 android (Java) 中设置 NavController.OnDestinationChangedListener 监听器?
问题描述
我试图仅在某些片段上显示我的 FloatingActionButton 并隐藏在其余片段中。我知道我必须创建一个“NavController.OnDestinationChangedListener navListener”来监听我的“navController.addOnDestinationChangedListener();” 但我不知道该怎么做。
这是我的MainActivity
:
public class MainActivity extends AppCompatActivity {
public final static int DIALOG_REQUEST_USER_NAME = 1000;
private AppBarConfiguration mAppBarConfiguration;
private ActivityMainBinding binding;
private NavigationView navigationView;
private NavController navController;
public static NavController.OnDestinationChangedListener navListener = null;
private ImageView headerUserImage;
private TextView headerUserName;
private TextView headerUserEmail;
private User user;
@SuppressLint("SetTextI18n")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
setSupportActionBar(binding.appBarMain.toolbar);
binding.appBarMain.fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, R.string.ReplaceWithYourOwnAction, Snackbar.LENGTH_LONG).setAction("Action", null).show();
}
});
DrawerLayout drawer = binding.drawerLayout;
// initialisation de notre NavigationView
navigationView = binding.navView;
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
mAppBarConfiguration = new AppBarConfiguration.Builder(R.id.nav_home, R.id.nav_recipe, R.id.nav_advice).setDrawerLayout(drawer).build();
navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main);
NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);
NavigationUI.setupWithNavController(navigationView, navController);
// What to do ???
navController.addOnDestinationChangedListener();
解决方案
推荐阅读
- javascript - WithRouter 不能在 componentDidUpdate 中工作
- php - call_user_func_array 不执行 __callStatic 魔术方法
- javascript - React ref 嵌套组件
- mysql - 从 S3 加载数据 - 大数据和索引的最快方式
- docker - docker selenium/standalone-chrome 无法连接到 docker web 服务器
- javascript - 为什么 Plottable 没有显示完整的图表?
- postgresql - 在某些数据库上连接到 Postgres 花费的时间太长
- javascript - 视频 js 中跳跃的搜索栏
- karate - 在另一个变量中使用一个字符串变量的值是将所有特殊字符转换为十六进制代码
- sql - SQL Server 选择最近的记录(稍加改动)