解释起来有点复杂。在我的布局中,我有一个ViewPager组件。在我的MainActivity中,我初始化它并在其上设置自定义FragmentStatePagerAdapter:
mPager = (ViewPager) findViewById(R.id.pagerMain);
mPagerAdapter = new ScreenSlidePagerAdapter(this.getSupportFragmentManager());
mPager.setAdapter(mPagerAdapter);
这是我的Custom ScreenSlidePagerAdapter:
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return ScreenSlidePageFragment.init(position, candidateID);
}
@Override
public int getCount() {
return NUM_PAGES;
}
}
使用一些ImageView初始化ScreenSlidePageFragment。到现在为止还挺好。接下来会发生什么,我更新内容,意味着PageViewer中的ImageViews并使用
mPager.setAdapter(mPagerAdapter);
要更新。当我重置适配器时,我可以在屏幕上看到新的ImageView。正是这种突然的变化才是我想要避免的。当ViewPager刷新其内容时,我希望将其设置为动画。当你解雇一个人时,有点喜欢火种。再说一遍:我没有谈到在设置适配器之后ImageViews之间的滑动动画,但是当我更改/重建适配器本身时。
我尝试了很多东西,但我不知道在哪里应用动画和哪个对象。你是否有一个想法,适配器可以像片段在被替换时动画一样动画是多么令人耳目一新?
答案 0 :(得分:0)
经过大量尝试和错误后,我通过为第一个ItemPosition添加“RootFragment”来解决它,用我真正的第一个Fragment替换这个Fragment,并且使用常见的FragmentTransaction将setCustomAnimations替换为它。
我认为有更好的方法可以做到这一点,在大多数情况下,当设置PageViewer时,它会保持这种状态。这就是为什么我在解决这个问题上遇到这么多困难。如果您想了解有关PageViewer的更多信息,请阅读:
https://guides.codepath.com/android/ViewPager-with-FragmentPagerAdapter