我有两个片段的活动。一个片段以纵向显示,另一个以横向模式显示。片段用java添加。Android碎片分离
Fragment fragment = null;
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
fragment = new FragmentPortrait();
} else {
fragment = new FragmentLandscape();
}
if (fragment != null) {
addFragment(fragment, savedInstanceState == null);
}
private void addFragment(Fragment fragment, boolean add) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager
.beginTransaction();
detachFragment("fragment");
if (add) {
fragmentTransaction.add(R.id.layoutForFragment, fragment,
"fragment");
} else {
fragmentTransaction.replace(R.id.layoutForFragment,
fragment, "fragment");
}
fragmentTransaction.commit();
}
private void detachFragment(String fragmentTag) {
Fragment fragment = getSupportFragmentManager().findFragmentByTag(
fragmentTag);
if (fragment != null) {
Log.i(TAG, "detaching");
getSupportFragmentManager().beginTransaction().remove(fragment)
.commit();
}
}
我的问题是,如果我开始了我在纵向模式下的活动,当我旋转如预期,但在肖像片段onActivityCreated被称为太显示景观片段的画面。这意味着肖像片段仍然存在。你能告诉我我的错误在哪里吗?
您不需要手动分离片段。试着替换它们。 – eleven 2014-10-06 12:44:01