美文网首页
使用Kongzue全家桶组件创建项目全攻略(二、跳转,权限,我闭

使用Kongzue全家桶组件创建项目全攻略(二、跳转,权限,我闭

作者: kongzue | 来源:发表于2018-12-18 18:08 被阅读23次

    [更新于 2018.12.18]

    前言

    本篇将继续讲述Kongzue全家桶组件中跳转和权限的那些事儿,主要包含Fragment相关的使用操作方式。
    本文中演示的步骤成品将会在最终开源至Github,有兴趣可以前往下载(https://github.com/kongzue/Example)。

    关于 Fragment 的那些坑

    我们经常会接到这样的需求——主界面底下需要一个Tabbar,存放“首页”、“消息”、“我的”这样的图标,而界面的上半部分,则需要显示相应的子界面,这时为了保证代码整洁,我们最常用的就是Fragment,但事实上Fragment并不好用,从绑定布局到activity中常用到的一些方法,都需要使用getActivity()来实现,为解决这样繁杂重复的代码编写,在Kongzue全家桶组件的BaseFramework中提供了BaseFragment组件,用户只需要将自己的Fragment集成它就可以实现犹如BaseActivity中编程的舒适体验。

    首先,创建一个自定义的Fragment类,并继承BaseFragment:


    继承BaseFragment.png

    在这里你不需要重写onCreateView事件,而需要重写initViews、initDatas和setEvents这三个事件,它们的用法在之前的章节有讲过,和BaseActivity中完全一样。
    除此之外,你需要使用@Layout(...)注解在Fragment的class标题上绑定布局,剩下的一切都是全自动的。

    在BaseFragment中,你依然可以直接使用“me”这个关键词,它相当于使用getActivity()获取到了Fragment在运行时绑定到的Activity,因此你也可以使用它来调用父Activity中的方法。默认情况下,在BaseFramework中提供了jump、toast、log等常用的快捷方法。
    如果你去查看它们的代码,就可以对它们的原理略知一二了,他们本质上都是调用的“me.”来实现的方法:


    BaseFragment源代码.png

    接下来,就需要在主界面中把这些子界面显示出来了,在我们的范例Demo中,我对MainActivity的布局进行了一些修改,增加了一个FrameLayout来存放这些Fragment子界面:

    MainActivity.png

    并进行了相关代码的编写(代码方法前后顺序略有调整以方便展示):


    MainActivityClass.png

    这就是组成主界面的一些基本要素了,其中MainHomeFragment、MainMessageFragment、MainMeFragment分别对应我们Demo项目中的主界面、消息和我的三个界面,具体的代码这里就不展开了,需要的可以前往Github下载Demo工程查看。

    关于 Fragment 的切换,这里使用的核心代码即使用 FragmentManager 来完成 FrameLayout 的替换,方法很简单。

    关于 Fragment 的沉浸式

    这里还是要啰嗦几句关于使用 Fragment 的布局如何进行沉浸式适配的问题。
    Fragment想要沉浸,外部Activity中的FrameLayout就不能在安全区内,那么Fragment内的内容想要沉浸就需要使用setPadding(...)的方法手动设置顶部Padding了,在本次范例中“我的”的界面中,就是用了这个方法以保证布局能够完成沉浸式:


    MeFragment.png

    咕咕咕咕咕咕...

    好吧,这是个系列文章,第三篇主要是Fragment相关的事情,先讲到这里,后续的坑还有玩转Kongzue对话框组件以及高效开发篇,有生之年一定写完,敬请期待!
    另外喜欢本系列文章请点一下下边的喜欢,你的支持是我前进的动力!

    已发布的目录:

    一、引入和沉浸式的那些事儿

    二、跳转,权限,我闭着眼~(上)

    二、跳转,权限,我闭着眼~(下)

    相关文章

      网友评论

          本文标题:使用Kongzue全家桶组件创建项目全攻略(二、跳转,权限,我闭

          本文链接:https://www.haomeiwen.com/subject/vkplkqtx.html