Fragment re-created on bottom navigation view item selected

后端 未结 15 2545
长发绾君心
长发绾君心 2020-12-07 23:55

Following is my code for bottom navigation view item selected

bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationI         


        
相关标签:
15条回答
  • 2020-12-08 00:56

    just add this line to avoid re-created Fragment from BottomNavigationView

     bottomNavigation.setOnNavigationItemReselectedListener(new BottomNavigationView.OnNavigationItemReselectedListener() {
                @Override
                public void onNavigationItemReselected(@NonNull MenuItem item) {
                 // do nothing here   
                }
            });
    
    0 讨论(0)
  • 2020-12-08 00:56

    Use setOnNavigationItemReselectedListener like this:

    private BottomNavigationView.OnNavigationItemReselectedListener onNavigationItemReselectedListener
                = new BottomNavigationView.OnNavigationItemReselectedListener() {
    
            @Override
            public void onNavigationItemReselected(@NonNull MenuItem item) {
                Toast.makeText(MainActivity.this, "Reselected", Toast.LENGTH_SHORT).show();
            }
        };
    

    and call it using:

    navigation.setOnNavigationItemReselectedListener(onNavigationItemReselectedListener);
    
    0 讨论(0)
  • 2020-12-08 00:56

    Use Cicerone library for handling navigation easily.

    https://github.com/terrakok/Cicerone

    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
        switch (menuItem.getItemId()) {
            case R.id.save: {
                router.replaceScreen("your fragment1");
                menuItem.setChecked(true);
                break;
            }
            case R.id.search_lessons: {
                router.replaceScreen("your fragment2");
                menuItem.setChecked(true);
                break;
            }
            case R.id.profile_student: {
                router.replaceScreen("your fragment3");
                menuItem.setChecked(true);
                break;
            }
    
        }
        return false;
    }
    
    0 讨论(0)
提交回复
热议问题