由于在scrollview滑到顶部或者底部的时候
需要做某些操作
但是由于scrollview的惯性滑动
会重复发生多次事件
故 需要屏蔽该惯性滑动效果先前使用的方法是
在scrollview滑到顶部或者底部时
加入ontouchevent,先模拟次touch down
再模拟次touch up 这样惯性滑动就没有了
用摩托2.2 索爱2.1 三星2.2上测试都没问题但是在三星nexous one 2.3上测试就挂了在模拟touch up事件时,ontouchevent内部报空指针错误求解~~或者有什么新思路可以解决惯性滑动问题

解决方案 »

  1.   

    做的软件是要求1.6以上机器都能用。。
    所以即使只有一款机型有crash现象
    都要改代码
      

  2.   

    不知道这样可以不可以:
    通过scrollview的滑动肯定可以得到你所通过scrollview控制的一个value值,这个值在理想状态(忽略惯性问题的情况)下,处在一个有限区间[a,b]。滑到顶部时,忽略一切value>b的value值,滑倒底部时,忽略一切value<a的value值,从而避免错误的事件响应。
      

  3.   


    这个值是指scroll的高度么
    高度肯定是在0-max之间。。
    就是在0(顶部),max(底部)时会触发事件
    在onScrollChanged中判断高度来触发的
    由于惯性滑动,导致连续触发
    现在在触发事件时调用了scrollview的fling(0)
    效果是达到了。不过不晓得是不是在所有机器上都有效
      

  4.   


    如果nexous one 2.3的系统没有动过什么手脚的话,应该可以吧?有测试下吗
      

  5.   


    在scrollview滑到顶部或者底部时
    加入ontouchevent,先模拟次touch down
    再模拟次touch up 这样惯性滑动就没有了
    用这个方法就是nexous one直接crash了,报的是模拟touch up的时候里面有空指针,看源代码没找出原因,而且每次都是第一次触发正常通过 第二次就报空指针现在用fling(0)正常通过。。几个手机都测试过,版本也有1.6 2.1 2.2 2.3
    查看了下源代码2.3和之前版本的scrollview改动还是很大的
    以google提供的代码看fling()应该没问题,就是不知道各个厂商有没再在里面加什么了
      

  6.   


    GOOGLE也意识到scrollview有很多需要改进的地方,即使是先把优化方案给三星,也是情理之中.
    2.3通过了那基本圆满了