el_*_*cho 5 android android-viewpager
我在 Android 应用程序中使用 aViewPager2来让用户左右滚动(当前)2 个页面。看起来不错,除了一个小细节。
我使用它是setOffscreenPageLimit(2)因为我希望两个页面都准备好立即滚动。然而,它似乎没有做任何事情。当我第一次从第 1 页滚动到第 2 页时,第二页的布局直到完全选择(即过渡动画完成)后才会出现。ViewPager2这看起来相当不和谐,并且完全破坏了平滑滚动的意义。
第一次加载第 2 页后,来回滚动可以正常工作,两个页面都被保留,从而实现平滑过渡。
任何人都可以复制这个吗?这曾经与 一起工作得很好ViewPager。
这是我的设置方式ViewPager2:
_viewPager2FragmentHolder = getActivity().findViewById(R.id.viewPager2TargetFragmentHolder);
_viewPager2FragmentHolder.setOffscreenPageLimit(2);
_viewPager2FragmentHolder.setAdapter(new TargetFragmentStateAdapter(this));
Run Code Online (Sandbox Code Playgroud)
...这是我的适配器类:
public class TargetFragmentStateAdapter extends FragmentStateAdapter
{
public TargetFragmentStateAdapter(@NonNull Fragment fragment)
{
super(fragment);
}
@NonNull
@Override
public Fragment createFragment(int position)
{
switch (position)
{
case 0:
return new TargetCoordinatesFragment();
case 1:
return new TargetDirectionsFragment();
default:
return new Fragment();
}
}
@Override
public int getItemCount()
{
return 2;
}
}
Run Code Online (Sandbox Code Playgroud)
设置应保留在当前可见页面两侧的页面数。超出此限制的页面将在需要时从适配器重新创建。
因此,您应该将其设置为 1 以获得您想要的结果。如果屏幕外页面似乎仅在选择时才“加载”,则意味着适配器或 pageSelectionCallback 执行了错误。
| 归档时间: |
|
| 查看次数: |
9279 次 |
| 最近记录: |