2016-09-24 4 views
0

У меня есть несколько фрагментов в одном действии. В основной деятельности я реализовал popBackStack(); функция в onBackPressed(); чтобы вы всегда могли вернуться к предыдущей кнопке возврата фрагмента. Но popBackStack(); не удаляет фрагмент, который я только что оставил. Как добиться удаления текущего фрагмента каждый раз, мы нажимаем кнопку «Назад»?удаление фрагмента с помощью popBackStack();

+0

Как вы загружаете фрагменты? Вы называете addToBackStack()? Если это так, вам не нужно реализовывать onBackPressed(), поскольку Android делает это за вас. –

+0

Как сказано учеником кода, если вы правильно добавляете фрагмент во время транзакции фрагмента. Тогда вам не нужно всплывать фрагмент. popbackStack обычно используется для кнопок и кликов, кроме кнопки «Назад» –

+0

. Посмотрите на ответ здесь: http://stackoverflow.com/questions/34025331/how-can-i-control-the-activitys-up-button-from-a -contained-fragment –

ответ

1
public void removeFragmentbyTag(String myFrag){ 

FragmentManager manager = getActivity().getSupportFragmentManager(); 
FragmentTransaction trans = manager.beginTransaction(); 
trans.remove(myFrag); 
trans.commit(); 
manager.popBackStack(); 
} 

надеюсь, что этот бит кода поможет вам.

+0

Как получить тег фрагмента в MainActivity с функцией onBackPressed? – Tomek

+0

, когда вы добавляете фрагменты в основную активность, добавляйте тег фрагмента к каждому фрагменту. – Vij

+0

getFragmentManager(). BeginTransaction(). Add (R.id.fragment_container, fragmentToBeAdded, tag) .commit(); где tag - String – Vij

Смежные вопросы