FragmentTabHost를 ViewPager에 넣었지만 장치를 회전 한 후에 탭 내용이 사라졌습니다. 콘텐츠를 새로 고치기 위해 다른 탭을 클릭하면 탭 콘텐츠가 다시 나타납니다. 내 코드에 문제가 있습니까? 도와주세요. 내 친구ViewPager 내부에서 회전 한 후 탭 내용이 사라졌습니다.
public class MyActivity extends FragmentActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LayoutInflater inflater = getLayoutInflater();
View tabView = inflater.inflate(R.layout.tab, null);
FragmentTabHost tabHost = (FragmentTabHost) tabView.findViewById(android.R.id.tabhost);
tabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("Tab1"), TabContent1Fragment.class, null);
tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("Tab2"), TabContent2Fragment.class, null);
View page2 = inflater.inflate(R.layout.page2, null);
ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
List<View> list = new ArrayList<View>();
list.add(page2);
list.add(tabView);
viewPager.setAdapter(new DemoPagerAdapter(list));
}
}
public class TabContent1Fragment extends Fragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return inflater.inflate(R.layout.tab_content_1, null);
}
}
public class DemoPagerAdapter extends PagerAdapter
{
private List<View> mModeViewPageList;
public DemoPagerAdapter(List<View> modeViewPageList)
{
this.mModeViewPageList = modeViewPageList;
}
@Override
public Object instantiateItem(ViewGroup container, int position)
{
container.addView(mModeViewPageList.get(position), 0);
return mModeViewPageList.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object)
{
container.removeView(mModeViewPageList.get(position));
}
@Override
public int getCount()
{
return mModeViewPageList.size();
}
@Override
public boolean isViewFromObject(View view, Object o)
{
return view == o;
}
}
감사합니다. getChildFragmentManager()가 나를 위해 속임수를 사용했습니다. 그러한 생명의 구원자 – naamadheya
'childFragmentManager'의'activity.supportFragmentManager'를 대체하는 데 도움이됩니다. 고맙습니다. – comm1x