У меня есть активность с двумя фрагментами. Один фрагмент показан на портрете, другой - в альбомном режиме. Фрагменты добавлены с помощью 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