接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