一个Activity使用带有两个Tabs的FragmentPagerAdapter(每个选项卡都有一个片段)。 首先,只有Home片段可见,而Run片段不可见。
tabsPageAdapter = new TabsPagerAdapter(getSupportFragmentManager());
...
viewPager = (ViewPager) findViewById(R.id.pager);
...
viewPager.setAdapter(tabsPageAdapter);
FragmentPagerAdapter看起来有点像这样:
class TabsPagerAdapter extends FragmentPagerAdapter {
public TabsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int index) {
switch (index) {
case 0: {
return Fragment.instantiate(MainActivity.this, HomeFragment.class.getName());
}
case 1:
return Fragment.instantiate(MainActivity.this, RunFragment.class.getName());
}
return null;
}
}
当Home Fragment中的异步任务成功时,它会通知Activity显示Run Fragment。
viewPager.setCurrentItem(1);
这使RunFragment可见,但它不调用任何生命周期方法:
不幸的是,我需要RunFragment中的一些代码才能在此时运行(它之前无法运行,因为它取决于在HomeFragment中运行的代码的副作用。)
我试过了:
我该如何攻击?