仿电商App:笔记(三):单Activity多Fragment的App页面架构设计与实践

 
参考视频教程:  
 **Android通用框架设计与完整电商APP开发  **
目录

1、Fragment的根容器设计

1.1根Fragment

1.2权限Fragment

1.3对外使用的Fragment

2、单Activity页面架构设计

2.1 根Activity

2.2 对外使用的Activity

单Activity多Fragment架构的优点:

1、Fragment可以使你能够将activity分离成多个可重用的组件,每个都有它自己的生命周期和UI。

2、Fragment可以轻松得创建动态灵活的UI设计,可以适应于不同的屏幕尺寸。从手机到平板电脑。

3、Fragment是一个独立的模块,紧紧地与activity绑定在一起。可以运行中动态地移除、加入、交换等。

4、Fragment 切换流畅,轻量切换。

5、Fragment 在4.2.版本中新增嵌套fragment使用方法,能够生成更好的界面效果。

6、Fragment做局部内容更新更方便,原来为了到达这一点要把多个布局放到一个activity里面,现在可以用多Fragment来代替,只有在需要的时候才加载Fragment,提高性能。

7、可以从startActivityForResult中接收到返回结果,但是View不能。

1、Fragment的根容器设计

分为三部分实现,都是抽象类,继承关系。

1.1根Fragment

位于latte-core模块下的BaseDelegate,抽象类,内部含有设置布局方法和对控件进行操作的方法,需要子类实现。

主要作用:与Activity绑定,根据子类传入的布局,初始化View,完成Butterknife绑定。




  public abstract Object setLayout();

  public abstract void onBindView(@Nullable Bundle savedInstanceState, View rootView);

1.2权限Fragment

位于latte-core模块下的PermissionCheckerDelegate,抽象类,继承自BaseDelegate。

主要作用:处理和权限有关的设定,例如:拍照、图片剪裁、二维码扫描等全限。

1.3对外使用的Fragment

位于latte-core模块下的LatteDelegate,抽象类,继承自PermissionCheckerDelegate。

主要作用:拥有BaseDelegate和PermissionCheckerDelegate类的所有功能;包含获取父类Fragment的功能。




  public <T extends LatteDelegate> T getParentDelegate() {
    return (T) getParentFragment();
  }

设计的优点:

使用抽象类:实现解耦,子类继承父类,还为父类增添方法,功能相互独立,后续更改方便。

2、单Activity页面架构设计

2.1 根Activity

位于latte-core模块下的ProxyActivity类,抽象类;内部含有设置根Fragment的方法,需要子类实现。

主要作用:初始化Activity,通过子类传入的Fragment与Activity绑定来初始化视图。



  public abstract LatteDelegate setRootDelegate();

2.2 对外使用的Activity

位于example模块下的ExampleActivity类,继承自ProxyActivity类;

主要作用:隐藏ActionBar,传入的Fragment视图,完成一些需要在Activity中进行初始化的功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值