带有recyclerviews的碎片需要很长时间才能加载
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有recyclerviews的碎片需要很长时间才能加载相关的知识,希望对你有一定的参考价值。
在我的应用程序中,有一个viewpager包含四个不同的选项卡。在每个选项卡中,嵌套ScrollView中有五个不同的片段,每个片段都会加载一个recyclerview。一切都加载但问题是当回收者视图附加大量数据时,数据需要很长时间才能加载。有时,加载需要10秒以上的时间,当有人需要等待很长时间时,它会非常恼人。请帮我解决这个问题。在每个选项卡中,下面提供的相同片段加载但具有不同的数据。
我的代码如下所示。
public class MyViewPagerFragment extends Fragment implements
View.OnClickListener {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.my_fragment_layout, container, false);
android.support.v4.app.FragmentManager manager = getChildFragmentManager();
android.support.v4.app.FragmentTransaction transaction = manager.beginTransaction();
BatsmanHelper.addNotBattedBatsmanFromPlayingXI(context, team, team.getBatsmans_list(), match);
FragmentOneWithRecyclerView fragment1 = new FragmentOneWithRecyclerView();
Bundle bundle1 = new Bundle();
// put some data in the bundle
recyclerView.setArguments(bundle1);
transaction.add(R.id.fragment1_container,
fragment1).addToBackStack(null
);
FragmentTwoWithRecyclerView fragment2 = new
FragmentTwoWithRecyclerView();
bundle1 = new Bundle();
// put some data in the bundle
fragment2.setArguments(bundle1);
transaction.add(R.id.fragment2_container,
fragment2).addToBackStack(null
);
FragmentThreeWithRecyclerView fragment3 = new
FragmentThreeWithRecyclerView();
bundle1 = new Bundle();
// put some data in the bundle
fragment3.setArguments(bundle1);
transaction.add(R.id.fragment3_container,
fragment3).addToBackStack(null
);
FragmentFourWithRecyclerView fragment4 = new FragmentFourWithRecyclerView();
bundle1 = new Bundle();
// put some data in the bundle
fragment4.setArguments(bundle1);
transaction.add(R.id.fragment4_container,
fragment4).addToBackStack(null
);
transaction.commit();
return view;
}
}
答案
也许有两个问题:
- 您的recyclerView中的项目可能需要很长时间才能加载。 (那你必须优化你的适配器)
- 而不是使用bundle,在哪个片段中构建一个这样的方法:
public void setCustomData(Object data){ this.data = data ; }
然后只需使用fragment.setCustomData(yourStuffs);
以上是关于带有recyclerviews的碎片需要很长时间才能加载的主要内容,如果未能解决你的问题,请参考以下文章
带有 NOT IN 子查询的 SELECT INTO 查询需要很长时间/挂起