Android上下拉刷新控件原理剖析

1. 上下拉控件,一般分为3个部分,refresh_headview,load_moreview,和中间的一部分view。

中间的view会随着操作者上下划拉的操作和移动位置,下拉的时候,露出头部的view,上拉的时候露出底部的view,这样就组成了一个上下拉刷新的控件了

2.refresh_headview放在view的上面,同时也是放在手机屏幕的上面,假如headview的高度为200dp,那么view的位置从-200dp来放置,同理,load_moreview,放

在view的下面,同时也是在手机屏幕的下面,这样,没有上下划拉view的时候才会显示出来,而如果没有滑动的时候,就只能看到中间的view。

3.一般分为6个状态

1.实例化init    2.释放刷新release_to_refresh    3,刷新refreshing   4,释放加载release_to_load   5,加载loading    6. 完毕done


4.通过事件截取和事件分发来获取起始点和滑动的距离,requestLayout(),来获取布局的展示,然后,改变用以上的6中状态。

5.子布局

protected void onLayout(boolean changed, int l, int t, int r, int b) {
   //子类的放置
   if (!isLayout) {
      // 这里是第一次进来的时候做一些初始化
      refreshView = getChildAt(0);
      pullableView = getChildAt(1);
      loadmoreView = getChildAt(2);
      isLayout = true;
      initView()
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值