2 qq 27665781 qq_27665781 于 2016.03.14 15:11 提问

Android viewpage滑动 10C

如果iewpage当前是在第一个页面 我用 viewpage.ontouch 监听iewpage的滑动viewpage
滑动,如果向左滑动,表示退出,向右滑动表示切换页面。
现在碰到的问题是:进入页面向右滑动,滑动到第二个页面,向左滑动,滑动到第一个页面,,
,然后我又滑动到第二个页面,再次往左滑想到第一个页面的时候,直接就执行 finish();了
这是为什么?.
或者谁有简单点的方法呢? viewpage 支持左右滑动,在第一个页面左滑退出!!!
图片说明

6个回答

bdmh
bdmh   Ds   Rxr 2016.03.14 15:17

这个没什么好说的,没控制好,你把每次的x2,x1都打印出来,一分析就知道自己的问题了

qq_27665781
qq_27665781 已打印Log 了 ,。再帮我看看呗
一年多之前 回复
qq_27665781
qq_27665781   Rxr 2016.03.14 15:27

图片说明 这是滑动两次直接退出了。 第一次滑动:X1 =0 X2=312
第二次滑动 X1=0 X2 =1078 直接超出Xconstant.w数据 所以退出了 。 不过我不知道这是为什么? X1 值没变呢

zhouxiongfei
zhouxiongfei   2016.03.14 15:44

依照你写的逻辑,第一次没有超出Xconstant.W当然不会退出,第二次满足条件当然会退出!!你的意思是不是只有在第一页时左滑退出??如果是,onTouch时判断是不是第一页不是则直接return,如果是第一页只要x2-x1大于0就直接finish,也不要搞什么距离了

qq_27665781
qq_27665781 回复qq_27665781: 而且X1的值一直是0 ,X2的滑动就可以赋值,所以不管怎么判断 ,都会执行finis 。因为X1始终为0,,X1为什么会等于0呢?
一年多之前 回复
qq_27665781
qq_27665781 X1一直是0啊 ,你的思路我试了下。 页面1右滑到页面2,页面2左滑到页面1, 页面1在又滑到页面2 的时候就直接finish
一年多之前 回复
sjwjay
sjwjay   2016.03.14 17:03

第一种,viewpager第一个子页面增加一个空页面,当滑到第一个页面直接finish,也就是onpageselected,当page==0时,finish
第二种,你的ontouch不要监听viewpager的,直接监听你之前第一个页面,如果是fragment,你直接在fragment里面写,如果是view,你就view.setontouchlistener

qq_27665781
qq_27665781   Rxr 2016.03.14 17:19

我现在测试出来了 。X1 为什么没值。是因为 图片说明
ACTION_DOWN 里面的方法没有被执行。这是为什么?

lxk_1993
lxk_1993 最后的return false 改成 return true 试试
一年多之前 回复
lxk_1993
lxk_1993   Rxr 2016.03.14 18:31

最后的return false 改成 return true 试试

lxk_1993
lxk_1993 回复qq_27665781: 把getX()换成getRawX()
一年多之前 回复
qq_27665781
qq_27665781 return true 的话 滑动直接没用了
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!