0
FragmentTabHost를 사용하여 탭을 만듭니다. 번역 후 tabtrap이 fragmenttabhost에서 사라졌습니다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tabwidget);
// mTabHost = new FragmentTabHost(this);
// mTabHost.setup(this, getSupportFragmentManager(),
// R.id.menu_settings);
mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
Resources res = getResources();
// first tab
Bundle b = new Bundle();
b.putString("key", url1);
mTabHost.addTab(
mTabHost.newTabSpec("vipusk").setIndicator(getTabIndicator(0)),
VypuskTabFragment.class, b);
// second tab
b = new Bundle();
b.putString("key", url2);
TabSpec newTab = mTabHost.newTabSpec("constructor");
newTab.setIndicator((getTabIndicator(1)));
mTabHost.addTab(newTab, ConstructorTabFragment.class, b);
// third tab
b = new Bundle();
b.putString("key", url3);
mTabHost.addTab(
mTabHost.newTabSpec("popular").setIndicator(getTabIndicator(2)),
PopularTabFragment.class, b);
// forth tab
b = new Bundle();
b.putString("key", url4);
mTabHost.addTab(
mTabHost.newTabSpec("actual").setIndicator(getTabIndicator(3)),
ActualTabFragment.class, b);
mTabHost.setOnTabChangedListener(tabChanged);
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheInMemory(true).cacheOnDisk(true).build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
getApplicationContext()).defaultDisplayImageOptions(
defaultOptions).build();
ImageLoader.getInstance().init(config); // Do it on Application start
}
다음 탭 조각에 somepoint에서 그 transation 내 tabwidget의 disapears 후 다른
Fragment details = new Fragment1();
FragmentTransaction transaction = getFragmentManager()
.beginTransaction();
Bundle bundles = new Bundle();
bundles.putSerializable("key", articles.get(position).getLink()
+ "?templateStyle=19");
details.setArguments(bundles);
transaction.replace(android.R.id.content, details);
transaction.addToBackStack(null);
transaction.commit();
를 호출합니다. 내가 알기로는, 수행하는 트랜잭션 유형이 개별 탭의 내용이 아닌 전체 fragmenttabhost를 대체합니다. 어떻게 이런 행동을 피할 수 있습니까?
편집 : 나는 행동을 원하는 얻을 것이다
transaction.replace(android.R.id.content, details);
transaction.replace(R.id.realtabcontent, details);
에 의해 대체하지만, 다시 탐색에 병이 바람직하지 않은 whichi, 다시 이전의 조각을 다시로드해야하는 경우