android 使用viewpager 的setPageTransformer后切换页面,里面fragment的点击事件无效

yuxinmong 2016-03-28 08:28:19
如题,android 使用viewpager 的setPageTransformer后切换页面,里面fragment的点击事件无效
我的项目是由 viewpager嵌入fragment,通过使用setPageTransformer实现立体翻转后,初次加载viewpager第一个fragment点击事件正常。翻页后点击事件失灵,失灵现象是:点击某fragment中一个按钮(点击该按钮换颜色的功能)无反应,(调试程序发现事件已经响应),然而并没有如期更换颜色。而此时若直接翻页操作(只是稍微滑一下, 没有翻页),在实现立体翻页过程中发现按钮变色了。这是怎么回事?求大神
...全文
1038 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
it_will_rain 2017-04-19
  • 打赏
  • 举报
回复
引用 楼主 yuxinmong 的回复:
如题,android 使用viewpager 的setPageTransformer后切换页面,里面fragment的点击事件无效 我的项目是由 viewpager嵌入fragment,通过使用setPageTransformer实现立体翻转后,初次加载viewpager第一个fragment点击事件正常。翻页后点击事件失灵,失灵现象是:点击某fragment中一个按钮(点击该按钮换颜色的功能)无反应,(调试程序发现事件已经响应),然而并没有如期更换颜色。而此时若直接翻页操作(只是稍微滑一下, 没有翻页),在实现立体翻页过程中发现按钮变色了。这是怎么回事?求大神
我想请问这个问题现在解决了吗
泥巴的爱 2016-08-06
  • 打赏
  • 举报
回复
viewpager的onPageChangeListener里面用上下面的代码貌似也可以解决问题。 代码来自http://blog.csdn.net/zjutkz/article/details/49680989 @Override public void onPageScrollStateChanged(int scrollState) { // A small hack to remove the HW layer that the viewpager add to each page when scrolling. if (scrollState != ViewPager.SCROLL_STATE_IDLE) { final int childCount = viewpager.getChildCount(); for (int i = 0; i < childCount; i++) viewpager.getChildAt(i).setLayerType(View.LAYER_TYPE_NONE, null); } }
泥巴的爱 2016-08-06
  • 打赏
  • 举报
回复
使用SlidingMenu滑出一次菜单后当前页面的UI发生变化是不会更新的,侧滑时才会发现更新。与viewpager.setPageTransformer之后出现的情况一样。从这找到了问题所在与解决方法。 http://blog.csdn.net/fuchaosz/article/details/516579 是硬件加速的问题。<application 里面 加上android:hardwareAccelerated="true"就不会出现这种情况了。 但我感觉这句话可能不能乱加。上面那篇博客提供了修改slidingmenu一句源码就解决问题的方法,但不知道Viewpager的该怎么改。
rambowng 2016-06-30
  • 打赏
  • 举报
回复
这个我发现是在android5.1上面才出现的,在4.4及以下是没有问题的。再去翻阅viewpager的源码,发现4.4和5.1是一样的。如果有不一样的话,那就是异常出现的原因了
rambowng 2016-06-30
  • 打赏
  • 举报
回复
我尝试过用JazzViewPager做,也尝试过用FragmentStatePagerAdapter去加载数据,但是效果还是一样的。网上说可以把事件放到onPageSelected监听,但是fragment太多事件了,而且加载了webview,点击事件还要是在js响应的,这方法根本行不通。希望有大神能解决这个问题吧,我看到4.4和5.1的viewpager代码是一样的
泥巴的爱 2016-06-30
  • 打赏
  • 举报
回复
我也刚发现这个问题,viewpager.setPageTransformer后fragment切换有动画效果,滑动或者点击里面的view都会触发效果,只是不会更新UI,譬如listview滑动,它会滑动,有触发adapter的getview,但页面ui不会变,看起来就像根本没动。。。可只要左或右稍微滑动一下页面UI就会更新。4.2.2的手机没这种事,5.1的就不行了。
rambowng 2016-06-15
  • 打赏
  • 举报
回复
这个问题最后解决了没?我也遇到这个问题,暂时无解

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧