我正在使用ActioBarActivity来使用appcompact v21中的新工具栏。 但是,当使用这种类型的活动时,当我用de参数addToBackStack()替换片段时,它不起作用。 当用户按下后退按钮时,角色活动将被销毁。
这是我的onCreate()
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_container);
Toolbar mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
mNavigationDrawerFragment = (NavigationDrawerFragment)
getFragmentManager().findFragmentById(R.id.navigation_drawer);
mTitle = getTitle();
// Set up the drawer.
mNavigationDrawerFragment.setUp(
R.id.navigation_drawer,
(DrawerLayout) findViewById(R.id.drawer_layout), mToolbar,getSupportActionBar());
if (savedInstanceState == null){
getFragmentManager().beginTransaction()
.replace(R.id.container, ListaFragment.newInstance(""))
.commit();
}
}
这是替换片段的点击
@Override
public void helpClick(int stringResource) {
getFragmentManager().beginTransaction()
.replace(R.id.container, HelpFragment.newInstance(stringResource))
.addToBackStack(null)
.commit();
}
我不知道在使用import android.app.Fragment导入android.support.v7.app.ActionBarActivity时是否存在兼容性错误;
答案 0 :(得分:1)
有同样的问题。您应该使用支持库中的类:android.support.v4.app.FragmentManager
和android.support.v4.app.Fragment
而不是默认类。
因此,您必须将getFragmentManager()
替换为getSupportFragmentManager()
,将import android.app.Fragment;
替换为import android.support.v4.app.Fragment;
。
此外,您的片段应扩展android.support.v4.app.Fragment
类。