为了账号安全,请及时绑定邮箱和手机立即绑定

安卓PagerAdapter中的isViewFromObject()方法有什么用?

安卓PagerAdapter中的isViewFromObject()方法有什么用?

Cats萌萌 2019-04-08 11:19:15
publicabstractbooleanisViewFromObject(Viewview,Objectobject)DetermineswhetherapageViewisassociatedwithaspecifickeyobjectasreturnedbyinstantiateItem(ViewGroup,int).ThismethodisrequiredforaPagerAdaptertofunctionproperly.ParametersviewPageViewtocheckforassociationwithobjectobjectObjecttocheckforassociationwithviewReturnstrueifviewisassociatedwiththekeyobjectobjectapi这么写,判断view是不是和object相关,还是不大懂要干嘛?
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

楼上表达的太惨不忍睹,问题不回答就带着你绕。理清楚了再回答,不要强答。百度里还一堆复制他的回答,真tm!!本身不是复杂的问题特地注册帐号回答
以下正文:前提概念:ViewPager里面对每个页面的管理是key-value形式的,也就是说每个page都有个对应的id(id是object类型),需要对page操作的时候都是通过id来完成的
首先看这个函数publicObjectinstantiateItem(ViewGroupcontainer,intposition);这是pageAdapter里的函数,功能就是往PageView里添加自己需要的page。同时注意它还有个返回值object,这就是那个id。
最后publicabstractbooleanisViewFromObject(Viewview,Objectobject)这个函数就是用来告诉框架,这个view的id是不是这个object。谷歌官方推荐把view当id用,所以常规的instantiateItem()函数的返回值是你自己定义的view,而isViewFromObject()的返回值是view==object。
ps:感觉这个机制应该是历史遗留问题,属于改bug改出来的机制。否则官方不会推荐这种把view当id的做法。
最最后:如有错误,望指正,以免误导后来者。
                            
查看完整回答
反对 回复 2019-04-08
  • 1 回答
  • 0 关注
  • 390 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信