最近在review别人的代码,使用了fragment实现了新UI。在这个过程中又充电学习安卓新的技术,因为又切回到熟悉的移动互联网开发了。

  • 方案一,安卓原生View管理替换。View是安卓所有控件的基类,这种方法简单有效,但分层不清和业务复杂就会显得低效。尤其我们要彻底掌握View的实现原理和相关方法!
LinearLayout layout  = new LinearLayout(this);layout.addView(childView); //添加视图layout.removeAllViews(); //移除视图
  • 方案二,使用Fragment模块化管理视图。Fragment使用起来确实很便利,目前它的包名都被谷歌替换为androidx.fragment,之前总是遇到app.fragment和v4.fragment相互冲突的情况。Fragment很适合一个APP中有很多模块是通用,然后APP框架经常要切换不同的模块的情况,比如我们经常还会看到viewpage和fragment搭配使用。
  • 方案三,尝试Shatter或者UIKit-ViewBlock。Shatter之前叫作UIBlock,ViewBlock它两都是个人开发者维护,大家可以阅读一波源码对比分析一下是实现思路。我们当然还可以尝试Square的一些开源库mortar和flow等。

Shatter是一个代替fragment来划分ui模块的库。它主要完成的工作是管理ui区块,并且能和activity保持完全相同的生命周期,没有任何学习成本。
Shatter对于单页面多ui模块的结构有着很好的支持,非常适合用来降低复杂activity的复杂度。但因为设计的关系,它的生命周期仅仅被activity触发的,所以不会有完整的生命周期的概念。

ViewBlock简介:快速代替fragment的轻量级解耦类,能对复杂布局划分Block…
项目中用 fragment 来降低 activity 的复杂度,但 fragment 带来的各种奇葩问题让我想死。ViewBlock 与 View 绑定在一起大大降低 activity 的复杂度。

更多延伸阅读
1、Android Fragment 替代方案
2、寻找Fragment的替代品的尝试
3、Shatter — Fragment的替代选择方案

更多相关文章

  1. 高级Redis应用进阶课 一站式Redis解决方案
  2. uni-app系统目录文件上传(非只图片和视频)解决方案
  3. Android(安卓)通过module进行开发
  4. Android应用开发笔记(12):Android应用的自动升级、更新模块的实现
  5. Android(安卓)MP3项目
  6. Android中adb端口被占用的有效解决方案
  7. android SQLite 批量插入数据慢的解决方案 (针对于不同的android
  8. 在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程
  9. AndroidStudio中AVD虚拟机设备空间不足调试过程出现的黑屏问题及

随机推荐

  1. Android(安卓)开发:glide圆角正确实现方法
  2. Android(安卓)studio2.3.2 配置kotlin、A
  3. android services 使用
  4. 一个诡异的BUG:Android(安卓)4.3 measure
  5. Button按钮的单击事件
  6. Android(安卓)Arduino 蓝牙模块通信源代
  7. Android(安卓)自定义实现日历控件
  8. Xamarin Android开发实战(上册)大学霸内部
  9. Android(安卓)studio 新建 java类 不见了
  10. android实现为PreferenceScreen设置背景