Android开发之ViewPager的工作原理是什么


这篇“Android开发之ViewPager的工作原理是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android开发之ViewPager的工作原理是什么”文章吧。在APP开发中,ViewPager 和PagerAdapter类在后台为我们完成了很多工作。那么ViewPager是如何工作的呢?在为大家介绍ViewPager的工作原理前,我们需要知道的是:大多情况下,我们无需了解其内部实现细节。不过,如果要自己实现PagerAdapter接口,那就要了解ViewPager-PagerAdapter和Recycler-View-Adapter各自关系的异同了。那么什么时候需要自己实现PagerAdapter接口呢?如果需要ViewPager托管非fragment视图时,那就需要实现原生PagerAdapter接口。例如,在ViewPager中托管图片这样的常见视图对象时。说到这里,相信大家又有疑问了,为什么选择使用ViewPager而不是RecyclerView呢?别急,南昌APP制作开发公司小编这就来告诉大家:那是因为由于无法使用现有的Fragment,在CriminalIntent应用中使用RecyclerView需处理大量内部实现工作。Adapter需要我们及时地提供View。然而,决定fragment视图何时创建的是FragmentManager。因此,当RecyclerView要求Adapter提供fragment视图时,我们无法立即创建fragment并提供其视图。这就是ViewPager存在的原因。它使用的是PagerAdapter类,而非原来的Adapter。PagerAdapter要比Adapter复杂得多,因为它要处理更多的视图管理工作。以下为它的基本内部实现。PagerAdapter不使用可返回视图的onBindViewHolder(…)方法,而是使用下列方法:public Object instantiateItem(ViewGroup container, int position)public void destroyItem(ViewGroup container, int position 香港云主机, Object object)public abstract boolean isViewFromObject(View view, Object object)PagerAdapter.instantiateItem(ViewGroup, int)方法告诉pager adapter创建指定位置的列表项视图,然后将其添加给ViewGroup视图容器,而destroyItem(ViewGroup, int,Object)方法则告诉pager adapter销毁已建视图。注意,instantiateItem(ViewGroup, int)方法并不要求立即创建视图。因此,PagerAdapter可自行决定何时创建视图。视图创建完成后,ViewPager会在某个时间点注意到它。为确定该视图所属的对象,ViewPager会调用isViewFromObject(View, Object) 方法。这里, Object 参数是instantiateItem(ViewGroup,int)方法返回的对象。因此,假设ViewPager调用instantiateItem(ViewGroup, 5)方法返回一个A对象,那么只要传入的View参数是第5个对象的视图,isViewFromObject(View, A)方法就应返回true值,否则返回false值。对ViewPager来说,这是一个复杂的过程,但对于PagerAdapter来说,这算不上什么。因为PagerAdapter只要能够创建、销毁视图以及识别视图来自哪个对象即可。这样的要求显然很宽松,因而PagerAdapter能够比较自由地通过instantiateItem(ViewGroup, int)方法创建并添加新的fragment,然后返回可以跟踪管理的Object(fragment)。以下为isViewFromObject(View, Object)方法的具体实现:@Overridepublic boolean isViewFromObject(View view, Object object) {return ((Fragment)object).getView() == view;}可以看到,每次需要使用ViewPager时,都要覆盖实现PagerAdapter的这些方法,这真是一种磨难。幸好我们有FragmentPagerAdapter和FragmentStatePagerAdapter便利类,以至于我们不会那么麻烦!以上就是关于“Android开发之ViewPager的工作原理是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注开发云行业资讯频道。

相关推荐: 电脑开机速度慢的原因有哪些

这篇文章主要介绍“电脑开机速度慢的原因有哪些”,在日常操作中,相信很多人在电脑开机速度慢的原因有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”电脑开机速度慢的原因有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!一、自…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/15 12:35
下一篇 07/15 12:35

相关推荐