最新回答 / 苏大人V
https://www.imooc.com/qadetail/203133 参考这个链接中我的回答,是否犯了同样的错误,或者你的问题是 你在Activity中并没有使用接口但是轮播框中却调用了listener.clickImageIndex(pos);造成空指针异常你可以添加一个非空判断,if(listener != null){ listener.clickImageIndex(pos) }
2017-06-20
讲解的很不错,不过在第一张图片的时候,往右边滑动,因为左边已经是最后一张了,滑动的时候就会出现空白,右边最后一张也是这个道理,应该再做一个位置处理
2017-06-07
接like楠的评论。
老师这种在ACTION_DOWN和ACTION_MOVE给标识位赋值似乎不是主流做法,一般在ACTION_UP中加入like楠所示的判断条件,20或者30都可以。在ACTION_MOVE中设置的问题在于,用户每一个细微的移动都会进行判定,一方面计算量增大了很多,一方面如果出现用户在滑动过程中停止之后又“手抖”动了小于20的距离,则会响应单击事件。
老师这种在ACTION_DOWN和ACTION_MOVE给标识位赋值似乎不是主流做法,一般在ACTION_UP中加入like楠所示的判断条件,20或者30都可以。在ACTION_MOVE中设置的问题在于,用户每一个细微的移动都会进行判定,一方面计算量增大了很多,一方面如果出现用户在滑动过程中停止之后又“手抖”动了小于20的距离,则会响应单击事件。
2017-06-03
老师,构造函数那边,可以让一个参数的调用2个参数的构造函数,2个参数的构造函数调用3个构造函数的方法。然后初始化动作,只需要在一个方法里面,这样看上去更加清爽一些。
2017-05-27
应该有不少朋友看不懂求index的 其实只要搞懂两个值就好了 当手指从屏幕左侧even.getX的值是由0往正数加的 所以scrolly里是-distance(viewgroup里的的内容相较于屏幕是往左移所以是-)。而getScrollX的值和even.getX是刚好相反的,当手指从屏幕左侧往右滑动的时候,getScrollX的值是从0变为负数,所以求index的时候可以直接用该值去加屏幕的一半
2017-05-27
case MotionEvent.ACTION_MOVE:
int moveX = (int) event.getX();
int distance = moveX - x;
scrollBy(-distance, 0);
if (Math.abs(moveX - x)>20) {
isClick=false;
}
x = moveX;//自我感觉这句没用
// isClick=false;
break;
照着老师的代码敲,我真机上测试 ,点击事件触发不了,debug了一下 ,isClick一直都是false,然后我自己加了一个判断,滑动的距离绝对值大于20就是滑动事件,小于就是点击事件
int moveX = (int) event.getX();
int distance = moveX - x;
scrollBy(-distance, 0);
if (Math.abs(moveX - x)>20) {
isClick=false;
}
x = moveX;//自我感觉这句没用
// isClick=false;
break;
照着老师的代码敲,我真机上测试 ,点击事件触发不了,debug了一下 ,isClick一直都是false,然后我自己加了一个判断,滑动的距离绝对值大于20就是滑动事件,小于就是点击事件
2017-05-04