Android: элементы ListView в ListFragment накладываются на себя

Я решаю странную проблему с ListFragments. У меня есть простая функция FragmentActivity с одной FrameLayout, которая является контейнером для моего ListFragment. Я использую свой пользовательский адаптер для данных. Все отлично работает, пока я не повернул устройство, чтобы изменить ориентацию. После этого список просматривается дважды – один список перекрывает второй. Когда я просматриваю список, перемещается только один из списков, и он создает артефакты, как показано на рисунке.

Скриншот от эмулятора

Я инициализирую адаптер в onCreateActivity, и я ничего не делаю в методе onDestroy. Есть ли что-нибудь, что я должен сделать в методе onDestroy, чтобы очистить список. Пожалуйста, вы когда-нибудь встречали эту проблему? Я действительно не знаю, что с этим делать.

Спасибо!

Solutions Collecting From Web of "Android: элементы ListView в ListFragment накладываются на себя"

Извините, что я не добавлял код, но я действительно не знал, какая часть может это сделать. Но я, наконец, понял, в чем причина.

В методе onCreate родительской активности я создал фрагмент, вызвав

if(mFragment == null) { mFragment = onCreatePane(); getSupportFragmentManager() .beginTransaction() .add(R.id.root_container,mFragment) .commit(); } 

Я думал, что проверка на null достаточна. Но содержимое фрагмента остается в FrameLayout либо после того, как onDestroy вызывается в Activity (путем поворота устройства). Это странно, не так ли?

Я попытался включить этот код в onStop()

 if(mFragment != null) { getSupportFragmentManager() .beginTransaction() .remove(mFragment) .commit(); } 

Но результат был тот же. Единственное решение, которое я нашел, это заменить метод add() методом replace() . Но знает ли кто-нибудь, почему удаление фрагмента не помогло? И почему содержание фрагмента остается в FrameLayout после уничтожения Activity?

Еще раз спасибо.

РЕДАКТИРОВАТЬ:

Теперь я знаю, в чем проблема. Я должен проверить savedStateInstance == null вместо mFragment == null . Если я этого не сделаю, основное действие восстановит старый фрагмент из сохраненного состояния, и он создаст также новый фрагмент в моем методе onCreate.