Navigation学习【三】——BottomNavigationView的简单使用

借助Android Studio新建项目时的Bottom Navigation Activity模板以及官方文档实现BottomNavigationView的简单使用。

Demo链接

简单使用

  1. 首先引入Navigation:

    dependencies {
         ...
         
         //navigation
         implementation 'androidx.navigation:navigation-fragment:2.2.0'
         implementation 'androidx.navigation:navigation-ui:2.2.0'
     }
    
  2. 创建对应的navigation文件nav_graph.xml

    
    
    
       
        
       
        
       
    
    
  3. 创建底部导航栏按钮文件bottom_nav_menu.xml,注意这里的id要与 nav_graph.xml对应的fragment一致

    
    
        
    
        
    
        
    
    
    
  4. 创建相应MainActivity布局 activity_main.xml

     
     
     
         
         
     
        
        
     
     
    
  5. NavigayionNavController相关联

    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //BottomNavigationView
            BottomNavigationView navigationView = findViewById(R.id.nav_view);
            //构建导航id  menu 与 navigation中的id要相对应
            AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
                    R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications)
                    .build();
            final NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
            //设置ActionBar标题与当前所显示的fragment相对应
            NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
            //与navcontroller相关联
            NavigationUI.setupWithNavController(navigationView, navController);
    
            //设置BottomNavigationView点击事件
            navigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
                @Override
                public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
                    //跳转相应fragment
                    navController.navigate(menuItem.getItemId());
                    //返回false会有一个点击悬浮效果,返回true则不会有该效果
                    return false;
                }
            });
        }
    }
    
    

参考文章

  • 导航组件
  • Codelable-Jetpack Navigation

你可能感兴趣的:(Navigation学习【三】——BottomNavigationView的简单使用)