ViewPager滑動不暢及靈敏度的問題

2021-06-22 11:03:23 字數 594 閱讀 9504

在專案中用到了android的viewpager元件,但是發現在滑動的時候不是特別流暢,有些小的滑動無法響應,於是考慮進行優化。

一開始考慮修改viewpager中的一些引數,比如mtouchslop等引數,繼承viewpager並且重寫一些方法;

但是後來發現這種方法比較複雜,並且滑動不流暢的問題好像不在這裡。

最後問題定位到viewpager的巢狀上,因為在viewpager所包含的view中包含了gridview元件,因此在滑動的時候有一定機率touch事件會被gridview處理掉,從而導致不靈敏。

根源還是touch事件的傳遞就處理流程上,解決方案是整合viewpager然後在onintercepttouchevent中加入如下**:

boolean res = super.onintercepttouchevent(event);

if(event.getaction() == motionevent.action_down) else else

}return res;

即判斷如果移動距離超過一定數值則認為滑屏操作,viewpager就直接進行擷取處理,不再傳遞到子view去。

使用ViewPager實現左右迴圈滑動及輪播效果

吃水不忘挖井人 讀了上文感覺思路挺不錯的,但是實踐的時候發現了一些問題。比如,開啟應用時banner並沒有自動開始輪播,因為handler中的if判斷把訊息給吃掉了。由此,我感覺這種處理方式並不是很好,出現重 訊息的問題,又通過其它方式來刪除掉這些訊息。我對 做了一下修改 1 刪除掉了以下這兩種訊息...

viewpager滑動不順暢

viewpager放在scrollview中時,滑動viewpager裡的內容會不順暢,原因是稍微有點上下的動作就會被scrollview截去了,為了解決這個問題,重寫了scrollview裡的方法,順利解決。也就是重寫onintercepttouchevent方法,定義方法判斷viewpager上...

禁止ViewPager左右滑動

有時候我們需要禁止掉viewpager的左右滑動,怎麼做呢,一般是自定viewpager。然後覆蓋viewpager的onintercepttouchevent motionevent arg0 方法和ontouchevent motionevent arg0 方法,這兩個方法的返回值都是boole...