Фрагменты Android перекрываются после поворота экрана

Это приложение является для меня обучающим упражнением, в том числе с использованием фрагментов. У него есть одно действие, которое управляет несколькими разными фрагментами. Первый - это 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();
}

10
задан Karakuri 20 February 2012 в 23:24
поделиться