首页 > 解决方案 > 如何在 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();

标签: android

解决方案


推荐阅读