我有一个viewpager从List获取其适配器。我从静态方法中获取List:
private static List<VerticalPagerAdapter> verticalAdapters;
public static List<VerticalPagerAdapter> getVerticalPagerAdapterList(FragmentManager fm) {
// List<VerticalPagerAdapter> verticalAdapters = new ArrayList<>();
if (verticalAdapters==null) {
verticalAdapters = new ArrayList<>();
GraphModel graphModel = GraphModel.getInstance();
int numberOfYears = graphModel.getLastYear()-graphModel.getFirstYear();
for (int i = 0; i < numberOfYears; i++) {
verticalAdapters.add(new VerticalPagerAdapter(fm, i, 2, DoubleVPChildFragment.class));
}
}
return verticalAdapters;
}
如果我通过取消注释第3行并注释条件来创建新数组,一切正常,但这是一个测试代码示例,在某些情况下,数组的创建可能会变为CPU密集型。
所以我试图延迟初始化ArrayList,但它不起作用:只填充第二个片段(不是第一个片段,奇怪的不是吗?)。
这是我对my library的测试的一部分,因此您可以尝试the sample project(只有2个班级)来查看我的问题。