您当前的位置: 首页 > 

蓝不蓝编程

暂无认证

  • 2浏览

    0关注

    706博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

使用JetPack中Navigation简化fragment切换

蓝不蓝编程 发布时间:2019-03-04 20:05:01 ,浏览量:2

简介

安卓开发中,Activity的使用较为简单,而Fragment则令人头疼,使用非常复杂。为了改善此种情况,Google 在2018 I/O大会上推出了JetPack,而Navigation则是和页面切换相关的。

使用方法

(更高级用法见《使用Navigation结合底部导航栏实现fragment切换》)

  1. build.gradle中添加依赖 implementation 'android.arch.navigation:navigation-fragment:1.0.0-rc02'
  2. 添加navigation文件. 1)鼠标右键点击“res”目录,选择“New”》“Android Resource Directory” 2)选择“navigation” 3)鼠标右键点击“navigation”目录,选择“New”》“Navigation resource file” 4)通过界面拖拽或者直接编辑导航文件



    
        
    
    
    

3. 跳转(含传参)

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        gotoSecondFragmentBtn.setOnClickListener {
            Navigation.findNavController(it).navigate(R.id.action_firstFragment_to_secondFragment, Bundle().apply {
                putString("name", "jenny")
                putInt("age", 18)
            })

        }
    }
  1. 接收参数(下面的navigateUp是返回的意思)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        arguments?.let {
            infoTextView.text = "上页传入数据:name:" + it.getString("name") + ";age:" + it.getInt("age", 0)
        }
        gotoFirstFragmentBtn.setOnClickListener {
            Navigation.findNavController(it).navigateUp()
        }
    }
  1. 实现效果
源代码

https://gitee.com/cxyzy1/navigationDemo/tree/master/app

附录

navigation官方介绍文档:https://codelabs.developers.google.com/codelabs/android-navigation/#0

其他参考资料: https://www.jianshu.com/p/729375b932fe https://blog.csdn.net/mq2553299/article/details/80445952 https://blog.csdn.net/cekiasoo/article/details/80739805

安卓开发技术分享: https://blog.csdn.net/yinxing2008/article/details/84555061 点击关注专栏,查看最新技术分享 更多技术总结好文,请关注:「程序园中猿」

关注
打赏
1639405877
查看更多评论
立即登录/注册

微信扫码登录

0.0409s