AndroidDrawer-使用Navigation.findNavController()导航到多个片段
创始人
2024-10-07 14:34:35
0
  1. 首先,在布局文件(比如activity_main.xml)中,定义一个DrawerLayout和NavigationView。将DrawerLayout作为根布局,同时将NavigationView作为DrawerLayout的第一个子视图。

示例代码:



    
    

    
    
        
        
        
    


  1. 创建一个NavController,在Activity(或者Fragment)中使用Navigation.findNavController()方法。

示例代码:

public class MainActivity extends AppCompatActivity {

    private NavController navController;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        navController = Navigation.findNavController(this, R.id.main_fragment_container);

        NavigationView navigationView = findViewById(R.id.navigation_view);
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
                menuItem.setChecked(true);
                drawerLayout.closeDrawers();

                switch(menuItem.getItemId()) {
                    case R.id.nav_first_fragment:
                        navController.navigate(R.id.firstFragment);
                        break;
                    case R.id.nav_second_fragment:
                        navController.navigate(R.id.secondFragment);
                        break;
                    case R.id.nav_third_fragment:
                        navController.navigate(R.id.thirdFragment);
                        break;
                }

                return true;
            }
        });
    }
}
  1. 在ActionBar或者ToolBar中添加一个按钮,用于打开或者关闭导航栏。

示例代码:

public class MainActivity extends AppCompatActivity {

    private DrawerLayout drawerLayout;
    private NavController navController;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        navController = Navigation.findNavController(this, R.id.main_fragment_container);

        NavigationView navigationView = findViewById(R.id.navigation_view);
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem menuItem

相关内容

热门资讯

透视模拟器!德普之星透视辅助(... 透视模拟器!德普之星透视辅助(透视)确实存在有挂(详细辅助微扑克教程)1、首先打开德普之星透视辅助最...
透视私人局!pokemmo手机... 透视私人局!pokemmo手机版脚本(透视)原来有挂(详细辅助详细教程);1. ai辅助创建新账号,...
透视科技!智星菠萝可以辅助吗(... 透视科技!智星菠萝可以辅助吗(透视)竟然真的是有挂(详细辅助攻略教程);1、起透看视 智星菠萝可以辅...
透视系统!wepoker透视脚... 透视系统!wepoker透视脚本免费下载pc(透视)果然是真的有挂(详细辅助2025版教程);1、完...
透视有挂!约局吧能不能开挂(透... 透视有挂!约局吧能不能开挂(透视)竟然真的是有挂(详细辅助可靠教程);1、点击下载安装,插件透视分类...
透视辅助!佛手大菠萝辅助(透视... 透视辅助!佛手大菠萝辅助(透视)一贯有挂(详细辅助AI教程)所有人都在同一条线上,像星星一样排成一排...
透视规律!如何下载德普之星辅助... 透视规律!如何下载德普之星辅助软件(透视)确实是真的有挂(详细辅助AA德州教程);1、机器人多个强度...
透视代打!wepoker智能辅... 透视代打!wepoker智能辅助插件(透视)其实存在有挂(详细辅助介绍教程)一、AI软件牌型概率发牌...
透视攻略!wpk透视辅助下载(... 透视攻略!wpk透视辅助下载(透视)一贯真的是有挂(详细辅助存在挂教程);1、该软件可以轻松地帮助玩...
透视规律!wepoker私人局... 透视规律!wepoker私人局透视(透视)都是是有挂(详细辅助必胜教程);辅助器中分为三种模型:软件...