【实现】ViewPager+Tab特效实现微信主界面

(这里做一下总结)
慕课地址:ViewPager+Tab特效实现微信主界面
代码地址:github

正文

使用ViewPager和FragmentPagerAdapter实现多页面滑动效果,底部Tab的指示器动画特效
(还将扩展ViewPager实现透明度渐变、旋转等特效。)

Tab变色
通过viewpager的(addOnPageChangeListener–>onPageScrolled)0–>1这里下手

自定义控件
绘制式:效率会高一些
组合式控件:使用系统的控件,稳定一些【这里使用这种方法,易于实现】

Activity与Fragment通信
Activity->fragment 直接获取fragment
fragment->Activity 不是fragment调用Mainactivity的方法,而是fragment对外提供自己的回调,activity自己选择是否监听(因为fragment是单一的 可复用单元)

屏幕旋转后,onCreate执行,getItem没有重新执行?
因为FragmentPagerAdapter管理fragment的比较好,直接重用了(所以这里用instance,通过argument来恢复重要数据)

FragmentStatePagerAdapter与FragmentPagerAdapter

  • FragmentPagerAdapter
    onCreateView
    onDestroyView
  • FragmentStatePagerAdapter
    onCreate
    onCreateView
    onDestroyView
    onDestroy

说明FragmentPagerAdapter并没有销毁fragment。
那么在使用的时候:
若只有4个主tab,为了提高用户体验,当然使用FragmentPagerAdapter
若有上千个tab,图片预览,特别占用内存,那么使用FragmentStatePagerAdapter
(记得使用setOffscreenPageLimit方法来设置缓存的fragment)

附加

viewpager切换动画
关键类:setPageTransformer 通过view position发现规律

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值