我为教育软件创建了800片段,因此我无法使用vpPager.setOffscreenPageLimit(800)
。我想我必须使用循环来打开带有buttonclicks的FragmentX(LessonX)
。
我的方法在下面我尝试了所有这些并且它们运行缓慢,打开fragmentXYZ
需要3分钟或4分钟。我想要帮助或想尝试递归方法,但我没有管理转换为递归方法。有什么帮助吗?抱歉我的英语不好。
public void Mypagermethod_1(int x) {
final ViewPager vpPager = (ViewPager) findViewById(R.id.pager);
vpPager.setCurrentItem(0);
int i;
for (i = 1; i <= x; i++) {
vpPager.setCurrentItem(vpPager.getCurrentItem() + 1);
}
}
OR
public void Mypagermethod2(int x) {
final ViewPager vpPager = (ViewPager) findViewById(R.id.pager);
vpPager.setCurrentItem(0);
int i=1;
while(i <= x){
vpPager.setCurrentItem(vpPager.getCurrentItem() + 1);
i++;
}
}
OR
public void Mypagermethod3(int x) {
final ViewPager vpPager = (ViewPager) findViewById(R.id.pager);
vpPager.setCurrentItem(0);
int i=1;
do {
vpPager.setCurrentItem(vpPager.getCurrentItem() + 1);
i++;
} while(i <= x);
}
答案 0 :(得分:1)
哦,我明白你在做什么。您不必在方法中模拟一次刷一页,只需调用vpPager.setCurrentItem(800)。
答案 1 :(得分:0)
上面的所有代码示例都具有相同的性能,并且更改为递归方法将没有任何区别。问题显然在vpPager.setCurrentItem(vpPager.getCurrentItem() + 1);
左右,如果这个方法很慢,那么无论你怎么称呼它都会很慢。
您还没有给出足够的信息来提供更具体的答案,您需要调试并查看时间。您是否正在渲染图像或其他任何可以关闭到单独线程的内容?