viewpager 中多页fragment的点击覆盖冲突问题

本文探讨了ViewPager中出现的点击穿透现象,即当两个相邻的Fragment存在相同坐标位置的可点击视图时,可能会导致点击事件无响应的问题。文章提供了解决方案:通过监听页面变化,在Fragment的onStart方法中进行判断,若当前Fragment不是ViewPager的当前页则隐藏其布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

viewpager 为了更好的用户体验,比如一共有5个fragment的时候,当前显示第1个fragment时,其实第二个fragment也已经加载为可见了,这就造成,当第一个fragment中的一个坐标为100,100,的view有点击事件,,,,第二个fragment也有相同坐标为100,100的view也有点击事件时。。

 此时就可能出现,点击第一个fragment或者第二个fragment其中一个viiew的点击事件无响应。

解决思路,因为viewpager中fragment,基本有2个以上的onstart会执行,也就是对用户可见,我们可以在onstart中,加上判断,如当前fragment的index不是viewpager的当前页,则隐藏布局。

同时实现viewpager的

setOnPageChangeListener接口

@Override
public void onPageScrollStateChanged(int arg0) {
    //arg0 ==1的时表示正在滑动,arg0==2的时表示滑动完毕了,arg0==0的时表示什么都没做。
我们在arg=2的时候,将viewpager当前
list.get(viewPager.getCurrentItem()).getRel().setVisibility(View.VISIBLE);
即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值