如果你想在同一时间activte人数超过1个片段...然后使用的方法getChildFragmentManager()
例如:
我称 “ShareSpace的” 主片段,并具有3 CH ILD片段.. //在ShareSpace的片段
View view = inflater.inflate(R.layout.fragment_sharespace, container, false);
mTabletSize = getResources().getBoolean(R.bool.isTablet);
mContext=getActivity();
ViewPager pager = (ViewPager) view.findViewById(R.id.pager);
ShareSpaceAdapter pagerAdapter = new ShareSpaceAdapter(mContext,getChildFragmentManager());
pager.setAdapter(pagerAdapter);
mSlidingTabLayout = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs_share);
mSlidingTabLayout.setViewPager(pager);
//适配器
public ShareSpaceAdapter(Context mContext, FragmentManager fm) {
super(fm);
this.mContext = mContext;
// TODO Auto-generated constructor stub
try {
if (home == null) {
homeFact = FactoryGenerator.getFactory(Constants.HOME);
home = homeFact.getHomeManagement(Constants.SHARESPACE);
}
local = home.readAssets(mContext);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public Fragment getItem(int arg0) {
Fragment frgmt = null;
switch (arg0) {
case 0:
frgmt = new ShareSpaceFiles(mContext);
break;
case 1:
frgmt=new ShareSpaceFolder(mContext);
break;
case 2:
frgmt = new ShareSpaceInbox(mContext);
break;
default:
break;
}
return frgmt;
}
@Override
public int getCount() {
return PAGE_COUNT;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0: // Fragment # 0 - This will show FirstFragment
return local.getmFiles();//"FILES";
case 1: // Fragment # 0 - This will show FirstFragment different title
return local.getmFolders();//"FOLDERS";
case 2:
return local.getmMessages();//"MESSAGES";
default:
return null;
}
}
它会在同一时间
加载3子片段如果我没有理解,那么你说,这不应该导致任何问题,但这是不好的做法? – JY2k
我在说,根据上下文,这可能是一个不好的做法 - 如果Frag A拥有正确显示Frag B所需的所有数据状态,那么它是Frag B的实际控制器,它不会是不好的做法。如果Frag A和Frag B的状态保存在Activity中,最好让Activity控制它们,而不是让Frag A控制Frag B. – npace