一.日志數(shù)據(jù)分析
PageTransformer接口中有transformPage(View view, float position)函數(shù)禽捆,我用了一個(gè)Demo工程的日志得到以下數(shù)據(jù)。這個(gè)Demo工程的ViewPager有三個(gè)View飘哨。
(1)當(dāng)有View1左滑到View2時(shí)胚想,由transformPage函數(shù)的日志獲得以下數(shù)據(jù)(注意順序):
view2的posion由1 -> 0;
view1的posion由0 -> -1;
(2)當(dāng)View2右滑到View1時(shí),由transformPage函數(shù)的日志獲得以下數(shù)據(jù)(注意順序):
view2的posion有0 -> 1;
view1的posion由-1 -> 0;
view3的posion有1 -> 2;
(2)當(dāng)View2右滑到View3時(shí)芽隆,由transformPage函數(shù)的日志獲得以下數(shù)據(jù)(注意順序):
view2的posion有0 -> -1;
view3的posion有1 -> 0;
view1的posion有-1 -> -2;
二.總結(jié)
其實(shí)我們?cè)趯?shí)際使用時(shí)浊服,實(shí)現(xiàn)滑動(dòng)效果不會(huì)考慮所有ViewPager的子item,只考慮滑動(dòng)時(shí)左右兩個(gè)item胚吁。
當(dāng)左滑時(shí):左View的posion將會(huì)由 0-> -1,右View的posion將會(huì)由1 -> 0牙躺;
當(dāng)右滑時(shí):左View的posion將會(huì)由 -1-> 0,右View的posion將會(huì)由 0-> 1;
其實(shí)很好理解:
- 當(dāng)左滑時(shí)腕扶,屏幕離左View的距離由不偏離(即0)到左偏離一個(gè)ViewPager寬度(即-1)孽拷。屏幕離由View的距離由右偏離一個(gè)ViewPager寬度(即1)到不偏離(即0)
- 當(dāng)右滑時(shí),屏幕離右View的距離由不偏離(即0)到右偏離一個(gè)ViewPager寬度(即1)半抱。屏幕離左View的距離由左偏離一個(gè)ViewPager寬度(即-1)到不偏離(即0)