在片段之间切换时,回收器视图会再次加载

时间:2021-06-01 04:37:03

标签: android-studio android-fragments android-recyclerview android-fragmentactivity

所以,我有一个包含三个片段的活动,我正在使用 ViewPager 在这些片段之间切换。

所以在我的一个 Fragment 中,我使用回收器视图来加载我的数据。我正在使用 onCreateView 来初始化我的视图并填充回收器视图。但这里的问题是,当我在片段之间来回切换时,我的回收器视图项目会再次加载。我不想要那个。我希望项目只加载一次。

例如。当我在 IMAGES 和 SAVED 选项卡之间来回切换时,回收站视图会在 IMAGES 选项卡中重新加载。(ps. 查看图像以更好地理解) my fragments view

这是我加载回收器视图的片段。

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();
}

有没有办法让这一切发生?

1 个答案:

答案 0 :(得分:1)

使用 ViewPager2 创建一个标签栏来解决您的问题。

相关问题