Это приложение является для меня обучающим упражнением, в том числе с использованием фрагментов. У него есть одно действие, которое управляет несколькими разными фрагментами. Первый - это ListFragment (A), который показывает, когда приложение запускается и загружает элементы списка из курсора. Щелчок по элементу списка уведомляет действие о замене ListFragment на DetailFragment (B) для этого элемента. Если, глядя на (B), я поворачиваю экран, я вижу (B) поверх (A), например:
http://postimage.org/image/uhy016ds7/
Я думаю, что это связано с тем, что Android уничтожает и воссоздает активность при изменении конфигурации. Мне интересно, какое самое чистое решение этой проблемы. Далее следуют некоторые фрагменты кода, дайте мне знать, если я хочу еще что-нибудь опубликовать.
res / layout / home.xml
MyActivity.onCreate
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
placeListFragment = (PlaceListFragment) getSupportFragmentManager().findFragmentById(
R.id.fragment_place_list);
}
MyActivity.showDetailPane
public void showDetailPane(String id, String reference) {
placeDetailFragment = PlaceDetailFragment.newInstance(id, reference);
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.addToBackStack(null);
ft.hide(placeListFragment);
ft.replace(R.id.fragment_container, placeDetailFragment);
ft.show(placeDetailFragment);
ft.commit();
}