[android] viewpager获取当前view报空指针的解决方法

本文介绍了在使用ViewPager时遇到的问题:当滑动超过三个视图后,试图获取当前视图时返回null。解决方法是在ViewPager的监听器中使用findViewWithTag方法,通过设置tag来跟踪并查找所需的视图。

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

因为需求,我需要获得viewpager当前的view

于是我采用以下写法

View currentView = mViewPager.getChildAt(mViewPager.getCurrentItem());

然后我拿这个view去做其他的事,但是滑动超过3个view后,再拿这个view的时候发现是null, mViewPager.getCurrentItem()超过2时就是null了, 这说明viewpager是三个view重复利用

那怎么办呢?

转载请注明出处:http://blog.csdn.net/ethan_xue/article/details/7890888

通过谷歌百度的帮助,果断用findviewwithtag这个方法

在viewpager的listener里的onPageSelected()这个方法里为view设置tag

itemview.setTag(currentID);

然后用的时候就只需要根据tag来find出来就好了

View currentView = mViewPager.findViewWithTag(mViewPager.getCurrentItem()

参考文章:

http://www.coder007.net/questions/1401/androi-viewpaper-view-childview

http://www.apkbus.com/blog-90729-39689.html

http://blog.sina.com.cn/s/blog_7033e38201015kwe.html



评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值