2015-01-22 1 views
1

У меня есть Fragment, содержащий уникальную ListView сказать FragmentA, когда я добавить еще один фрагмент, содержащие другой ListView сказать FragmentB:ListView в Fragment backstack все еще зовут GetView()

getFragmentManager().beginTransaction() 
    .add(R.id.fragment_container, FragmentB) 
    .commit() 

Я заметил, что getView() из ListView в FragmentA все еще вызывается, хотя верхний фрагмент теперь FragmentB, по какой-либо причине, почему и как я могу предотвратить это поведение?

ответ

3

Вы складываете фрагменты друг на друга.

Вместо add используйте replace для замены любых существующих фрагментов в этом контейнере.

+0

заменить означает, что я не смогу вернуться к 'FragmentA', правильно? –

+1

@SiGanteng Нет, это не так. Пока вы добавляете транзакцию в backstack. – Simas

+0

Хорошо, попробуй тогда, спасибо. Я интуитивно думал, что замена означает извлечение (удаление) любого фрагмента в этом представлении и замену = /. –