但行好事,莫问前程。

ListView在ViewPager中导致左右滑动失效

2012-11-30

我是在Android ViewPager的每一个页面中实现了一个ListFragment。每个ListFragment的ListView是一列商品列表,点击商品名称的时候可以跳到一个内嵌的WebView浏览器里。正常运行的时候没有出现问题,左右滑动切换不同的商城信息,上下滑动显示一个商城里所有的商品列表。为了实现左右滑动和上下滑动的灵活性,在ViewPager子类里实现了自定义的手势GestureDetector。

测试时,在一个商品上不停的点击、进入浏览器、返回、再点击、再返回,连续三、四次之后,就被困在一个ViewPager页面里出不来了,左右滑动失灵。并且能够屡次重现。

后来在能加Log的地方都加上Log,一句一句的跟踪,发现是LongPress造成的,ViewPager如果接收了LongPress事件,左右滑动立马失灵。

增加了一行代码:mGestureDetector.setIsLongpressEnabled(false);

将LongPress禁用。一切恢复正常。

Author:xialeban | Categories:挨踢江湖 | Tags:

一条评论

发表评论