草庐IT

getItemPosition

全部标签

android - 从 getItemPosition 更新 ViewPager 中的 fragment

我有一个屏幕,其中包含来自设计支持库的新TabLayout。我还有一个用于显示fragment的ViewPager。此fragment根据选择的选项卡显示不同的View列表。应用程序收到对网络调用的响应,我的Activity使用响应返回的数据更新属于ViewPager的FragmentPagerAdapter,在我的例子中这是3个列表。在我的ViewPager中,我覆盖了onPageChangeListener()以检测何时选择了页面,然后我使用新的选项卡位置调用我的FragmentPagerAdapter。我还调用了notifyDataSet()以重绘View。我覆盖了getItem

android - getItemPosition 应该在什么时候考虑项目位置的变化?

Android的PagerAdapter类中的方法getItemPosition的文档指出它是:Calledwhenthehostviewisattemptingtodetermineifanitem'spositionhaschanged.应该调用此方法来指示某个项目在该适配器的项目组中的位置是否已更改。但是,它从未说明重写方法何时应考虑要更改的位置。这是否意味着该位置与上次调用项目getItemPosition时的位置不同?这是否意味着该项目的位置与上次调用notifyDataSetChanged时不同?或者这是否意味着该项目的位置与该项目添加到viewPager时的位置不同?

android - 使用 getItemPosition(Object object) 对 FragmentStatePagerAdapter 中的页面重新排序

我认为FragmentStatePagerAdapter在重写getItemPosition(Objectobject)以重新排序页面时行为不正确。下面是一个简单的例子。在初始状态下,页面的顺序是{A,B,C}。调用toggleState()后,页面顺序变为{A,C,B}。通过覆盖getItemPosition(Objectobject),我们确保当前正在查看的页面(A、B或C)不会改变。publicstaticclassTestPagerAdapterextendsFragmentStatePagerAdapter{privatebooleanmState=true;publicTe