Fragmentation——单activity多fragment封装

介绍:

Fragmentation,主要用于现在App经常需要实现的单Activity+多Fragment以及多Activity+多Fragment的形式架构。同时最最重要的是,它帮助我们封装了很多好用的方法,解决了一些官方Fragment库中存在的一些Bug。

依赖:

api 'me.yokeyword:fragmentation:1.3.6'

api 'me.yokeyword:fragmentation-swipeback:1.2.7'

1 封装BaseFragment:

自定义BaseFragment继承自Fragmentation提供的SwipeBackFragment

将BaseFragment改为抽象类,在具体业务中定义具体的页面Fragment时就继承这个类,实现它的抽象方法,传入布局,绑定视图。

封装两个抽象方法,用于在自己实际的fragment中实现,

setLayout()用于设置fragment的layout,

onBindView()用于在自己的fagment中绑定layout中的控件

BaseFragment做的事情:通过两个抽象方法和子类进行交互,帮助子类完成createView的操作

在BaseFragment中,我们通过setLayout方法得到fragment的layout,帮后面所有继承BaseFragment的fragment inflate好我们的view。

2封装ProxyActivity:(抽象类,用来绑定自定义的Fragement到界面上)继承SupportActivity(注意看好是fragmentation的包不能导成v4的)。 用于设置根fragment,设置activity的setContentView。

给子类activity(实际使用的activit)封装一个设置根fragment的方法:

BaseActivity做的事情

注意一下容器的id,这里需要我们单独创建一个独特的int出来,直接在里面传123是没用的,至于为什么要去问谷歌,下面介绍该怎么做

在values中添加ids.xml
新建一个id

然后as会帮我们自动生成一个独一无二的int,我们就可以为container添加id了。


到这里封装就完成了,现在我们需要使用就变得特别简单了,

实际的activity
实际的fragment

在这里,我们只需要操作这两个类就可以完成对整个项目页面的操作了。

你可能感兴趣的:(Fragmentation——单activity多fragment封装)