首先在没有动画的 ViewPager2 中滚动
First scroll in ViewPager2 without animation
我有 activity 全屏 ViewPager。问题是 - 当我第一次滚动时它非常滞后。它发生在模拟器和物理设备中。我认为那一刻适配器会膨胀其他页面,我想强制 ViewPager 或适配器在 activity 的 onCreate 上创建所有 (3) 个页面。
这是我的代码:
Activity onCreate()
adapter = new TutorialPageAdapter();
viewPager.setAdapter(adapter);
dotsIndicator.setViewPager2(viewPager);
适配器:
public class TutorialPageAdapter extends RecyclerView.Adapter<TutorialPageAdapter.TutorialItemHolder> {
int[] items = {R.layout.tutorial_item_1_layout, R.layout.tutorial_item_2_layout, R.layout.tutorial_item_3_layout };
@NonNull
@Override
public TutorialItemHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View layoutView = LayoutInflater.from(parent.getContext()).inflate(items[viewType], parent, false);
return new TutorialItemHolder(layoutView);
}
@Override
public int getItemViewType(int position) {
return position;
}
@Override
public void onBindViewHolder(@NonNull TutorialItemHolder holder, int position) {
}
public TutorialPageAdapter() {
notifyDataSetChanged();
}
@Override
public int getItemCount() {
return items.length;
}
class TutorialItemHolder extends RecyclerView.ViewHolder {
public TutorialItemHolder(@NonNull View itemView) {
super(itemView);
}
}
}
据我了解,您希望存储的片段数量 "behind the screen" 增加。您可以为此使用此代码。
viewPager.setOffscreenPageLimit(3);
相关问题:link
只有这样activity的创作才会长
我有 activity 全屏 ViewPager。问题是 - 当我第一次滚动时它非常滞后。它发生在模拟器和物理设备中。我认为那一刻适配器会膨胀其他页面,我想强制 ViewPager 或适配器在 activity 的 onCreate 上创建所有 (3) 个页面。
这是我的代码:
Activity onCreate()
adapter = new TutorialPageAdapter();
viewPager.setAdapter(adapter);
dotsIndicator.setViewPager2(viewPager);
适配器:
public class TutorialPageAdapter extends RecyclerView.Adapter<TutorialPageAdapter.TutorialItemHolder> {
int[] items = {R.layout.tutorial_item_1_layout, R.layout.tutorial_item_2_layout, R.layout.tutorial_item_3_layout };
@NonNull
@Override
public TutorialItemHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View layoutView = LayoutInflater.from(parent.getContext()).inflate(items[viewType], parent, false);
return new TutorialItemHolder(layoutView);
}
@Override
public int getItemViewType(int position) {
return position;
}
@Override
public void onBindViewHolder(@NonNull TutorialItemHolder holder, int position) {
}
public TutorialPageAdapter() {
notifyDataSetChanged();
}
@Override
public int getItemCount() {
return items.length;
}
class TutorialItemHolder extends RecyclerView.ViewHolder {
public TutorialItemHolder(@NonNull View itemView) {
super(itemView);
}
}
}
据我了解,您希望存储的片段数量 "behind the screen" 增加。您可以为此使用此代码。
viewPager.setOffscreenPageLimit(3);
相关问题:link
只有这样activity的创作才会长