ViewPage實(shí)現(xiàn)自動滾動并沒有通過ScheduledExcutorService或者Timer定期執(zhí)行某個任務(wù)實(shí)現(xiàn),而是簡單的通過handler發(fā)送消息去完成一次滾動狈邑,在完成一次滾動后發(fā)送另外一個delay的滾動消息,如此循環(huán)實(shí)現(xiàn)蚤认。
ViewPager滑動速度的設(shè)置是通過反射的方式重新設(shè)置ViewPager的Scroller米苹,改變Scroller的startScroll的間隔時間完成的。調(diào)用setScrollDuration(double)即可烙懦。
如何使用呢驱入?
首先赤炒,引入公共庫。
Android Auto Scroll ViewPager 作為你項(xiàng)目的library亏较。
然后莺褒,調(diào)用。分兩步雪情。
第一步遵岩,利用自動滾動的AutoScrollViewPager來代替一般的ViewPager。
第二步巡通,啟動ViewPager自動滾動尘执。
startAutoScroll()啟動自動滾動
stopAutoScroll()停止自動滾動
另外,我們可以根據(jù)自己的需求進(jìn)行一系列相關(guān)的設(shè)置宴凉。
setInterval(long)設(shè)置自動滾動的間隔時間誊锭,單位為毫秒
setDirection(int)設(shè)置自動滾動的方向,默認(rèn)向右
setCycle(boolean)是否自動循環(huán)輪播弥锄,默認(rèn)為ture
setScrollDurationFactor(double)設(shè)置VIewPager滑動動畫間隔時間的倍率丧靡,達(dá)到減慢動畫或者改變動畫速度的效果
setStopScrollWhenTouch(boolean)當(dāng)手指碰到ViewPager時是否停止自動滾動,默認(rèn)為true籽暇。
setSlideBorderMote(int)滑動到第一個或者最后一個Item的處理方式温治,支持沒有任何操作、輪播以及傳遞到父View三種模式戒悠。
setBorderAnimation(boolean)設(shè)置循環(huán)滾動時滑動到邊緣滾動到下一個是否需要動畫熬荆,默認(rèn)為true。