我Fragments
在 a中实现了一些FragmentTabHost
,使用:
内部 FragmentActivity 类:
FragmentTabHost mTabHost;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e(TAG, "onCreateView()");
setContentView(R.layout.activity_main);
mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
mTabHost.addTab(mTabHost.newTabSpec("audio").setIndicator("Audio"),
AudioFragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("video").setIndicator("Video"),
VideoFragment.class, null);
mTabHost.setOnTabChangedListener(this);
}
在其中一个fragment
说法AudioFragment
中,有一个button
应该在 AudioFragment 的当前片段上打开一个新片段。
AudioFragment.class 内部
@Override
public void onClick(View button) {
switch (button.getId()) {
case R.id.bOpenNewFragment:
// WHAT TO CODE, TO REPLACE THE CURRENT FRAGMENT OF AudioFragment
break;
}
}
我尝试使用通常的代码:
Fragment fragment = new ShowAudioDetailsFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.realtabcontent, fragment);
transaction.addToBackStack(null);
transaction.commit();
但是,当我切换到另一个选项卡时,它会产生问题(例如未维护状态并且新片段的视图正在与其他选项卡的布局合并)。
那么如何用 FragmentTabHost 中打开的片段替换片段
谢谢你