2015-02-06 2 views
0

У меня есть 4 фрагмента A B C D. как использовать задний стек и как установить фрагменты? Я хочу добавить только фрагмент А стек и, когда я нажимаю кнопку назад БЛ или D, я хочу, чтобы установить фрагмент А. Я не хочу BC и D в задней стекеFragment onback кнопка пресса андроида пропустить фрагменты

ответ

0

Обычно в вашем FragmentTransaction вы должны позвонить addToBackstack(null), чтобы добавить его в заднюю часть.

Столбец на самом деле представляет собой стек, где вы нажимаете фрагмент, когда пользователь нажимает кнопку назад.

Так что если A ставит B, B ставит C и C ставит D; вы не можете напрямую перейти от D к A.

Вы можете переопределить onBackPressed() и самостоятельно контролировать поведение, не используя встроенную поддержку стека Фрагмента.

+0

Я добавляю только фрагмент в стек – user3237043

+0

Вы до сих пор не дали всю историю. Можете ли вы дать именно то, что хотите? Вы добавляете A в стек ok. Но какой из них следует после этого? – tasomaniac

+0

(http://stackoverflow.com/questions/28337999/android-fragment-backpress/28339373?noredirect=1#comment45027213_28339373) – user3237043

0

Вы можете popbackstack очистить любые фрагменты в истории и объявления, чтобы backstack фрагмент А вот так:

//create an instance of the fragment you want o be avilable on back press 
FragmentA fragmentA = new FragmentA(); 

FragmentManager fragmentManager = getFragmentManager(); 
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 

//Create instance of the fragment that is going to be loaded 
FragmentD fragmentD = new FragmentD(); 

//Replace the current fragment with Fragment D 
fragmentTransaction.replace(R.id.frame_container, fragmentD); 

//Clear frgament history and include the fragment wanted on back press 
fragmentManager.popBackStack(); 

fragmentTransaction.addToBackStack(fragmentA.getclass().getName()); 

fragmentTransaction.commit(); 
Смежные вопросы