解决方案 »

  1.   

    如果 listview 自身有移动,那么必然会造成界面的重绘,而如果不让界面重绘,那么只能让下拉提示改一个位置,不知道你有没有使用过知乎,知乎里面的刷新提示是放在了 Actionbar 的位置进行提示的,所以我们可以通过检测在 listView 中的下拉手势,通知 actionbar, 显示对应的下拉提示,这样只需要重绘 actionbar 部分
      

  2.   

    面试的那个人的意思是有方法不让界面重绘实现这种效果,我能想到的是在外面套个View,然后让这个View的内容滚动,从而不用重新计算,不知道这样行不行,这种我也没实现过。
      

  3.   

    滚动的时候不会执行perforMeasure和performLayout把,因为每个View的大小和位置都没变化。所以只需要在performDraw的时候考虑mScrollY就行了的
      

  4.   

    如果那样,你要怎么处理 ListView 本身的活动事件,毕竟 ListView也是可以滑动的,使用一个滑动的 View 包裹另一个可滑动的 View, 本身就需要计算很多东西,而且麻烦
      

  5.   

    蓝翔老师告诉你,你应该看一下pulltorefresh的源码
      

  6.   

    这个问题你解决了吗?可以跟我说说嘛![email protected]
      

  7.   

    scroll To 或者 scroll By 这种组件滚动效果。
      

  8.   

    貌似listView源码里有 自带的下拉过头回弹的代码,把源码稍微改造一下就是一个原生支持此特效的listView控件。
    这样不会改变listView以外的布局,也不会引起外部的onLayout 和measure。
      

  9.   

    看了下下拉刷新的代码,也是继承linearlayout,不过滚动的时候操作是先设置头部view为VISIBLE(默认为INVISIBLE),然后调用linearlayout的scrollTo方法