前言html
Fragment其实能够理解为一个具备本身生命周期的控件,只不过这个控件又有点特殊,它有本身的处理输入事件的能力,有本身的生命周期,又必须依赖于Activity,能互相通讯和托管。微信
使用Fragment还有这么几个方面优点:ide
代码复用。特别适用于模块化的开发,由于一个Fragment能够被多个Activity嵌套,有个共同的业务模块就能够复用了,是模块化UI的良好组件。模块化
Activity用来管理Fragment。Fragment的生命周期是寄托到Activity中,Fragment能够被Attach添加和Detach释放。函数
可控性。Fragment能够像普通对象那样自由的建立和控制,传递参数更加容易和方便,也不用处理系统相关的事情,显示方式、替换、无论是总体仍是部分,均可以作到相应的更改。测试
Fragments是view controllers,它们包含可测试的,解耦的业务逻辑块,因为Fragments是构建在views之上的,而views很容易实现动画效果,所以Fragments在屏幕切换时具备更好的控制。动画
视频效果spa
此次咱们就上传的e码通的登录界面,经过切换登录方式直接切换对应的界面,帐号登录和手势登录.net
代码演示3d
咱们的e码通项目,由于项目里的文件较多,因此我这里这截取重点。
登录界面
activity_login.xml
中间的空白区域
咱们直接加一个LinearLayout起名为login_fragment
LoginActivity
关键代码
上面先定义了咱们的帐号登录和手势登录的Fragment,而后用一个CreateFrag来建立表头和表体碎片。
而后定义一个Logintype为整型,用于区分当前的是帐号登录仍是手势登录。而后SetLoginType函数就是用于根据不一样的类型切换咱们的fragment的效果。
帐号登录
fragment_login_input.xml
LoginInputFragment
手势登录
fragment_login_sign.xml
关于手势登录这块咱们单独再找一篇来说。
LoginSignFragment
运行效果
点击切换登录方式后
-END-
长按下方二维码关注微卡智享
本文分享自微信公众号 - 微卡智享(VaccaeShare)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。