在片段之间切换时,Recycler View 会再次加载
Recycler View gets loaded again when switching between fragments
所以,我有一个 activity,其中包含三个片段,我正在使用 ViewPager 在片段之间切换。
因此,在我的一个片段中,我使用回收器视图来加载我的数据。我正在使用 onCreateView 来初始化我的视图并填充回收器视图。但这里的问题是当我在片段之间来回切换时,我的回收器视图项目再次加载。我不想要那个。我希望项目只加载一次。
例如。当我在 IMAGES 和 SAVED 选项卡之间来回切换时,回收器视图会在 IMAGES 选项卡中重新加载。(ps。查看图像以更好地理解)
这是我加载回收器视图的片段。
public ImageFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
statusView = inflater.inflate(R.layout.fragment_image,container,false);
initViews();
return statusView;
}
private void initViews() {
progressBar = statusView.findViewById(R.id.progressBar);
recyclerView = statusView.findViewById(R.id.statusRecyclerView);
recyclerView.addItemDecoration(new ListViewItemDecorator(getResources().getDimensionPixelSize(R.dimen.spacing)));
refreshLayout = statusView.findViewById(R.id.statusSwipeRefreshLayout);
recyclerView.setHasFixedSize(true);
adapter = new StatusAdapter(getContext(),arrayList);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new GridLayoutManager(getContext(),2));
adapter.notifyDataSetChanged();
recyclerView.scheduleLayoutAnimation();
}
那么有什么方法可以做到这一点吗?
使用 ViewPager2 创建标签栏将解决您的问题。
所以,我有一个 activity,其中包含三个片段,我正在使用 ViewPager 在片段之间切换。
因此,在我的一个片段中,我使用回收器视图来加载我的数据。我正在使用 onCreateView 来初始化我的视图并填充回收器视图。但这里的问题是当我在片段之间来回切换时,我的回收器视图项目再次加载。我不想要那个。我希望项目只加载一次。
例如。当我在 IMAGES 和 SAVED 选项卡之间来回切换时,回收器视图会在 IMAGES 选项卡中重新加载。(ps。查看图像以更好地理解)
这是我加载回收器视图的片段。
public ImageFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
statusView = inflater.inflate(R.layout.fragment_image,container,false);
initViews();
return statusView;
}
private void initViews() {
progressBar = statusView.findViewById(R.id.progressBar);
recyclerView = statusView.findViewById(R.id.statusRecyclerView);
recyclerView.addItemDecoration(new ListViewItemDecorator(getResources().getDimensionPixelSize(R.dimen.spacing)));
refreshLayout = statusView.findViewById(R.id.statusSwipeRefreshLayout);
recyclerView.setHasFixedSize(true);
adapter = new StatusAdapter(getContext(),arrayList);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new GridLayoutManager(getContext(),2));
adapter.notifyDataSetChanged();
recyclerView.scheduleLayoutAnimation();
}
那么有什么方法可以做到这一点吗?
使用 ViewPager2 创建标签栏将解决您的问题。