2015-05-14 2 views
1

Скажем, у меня есть 2 фрагмента: A и BЗапрос с фрагментом backstack

Фрагмент A сверху. Теперь я добавляю фрагмент B, удерживающий A в стоге.

Теперь, когда нажата кнопка «Назад», B удаляется, а A - сверху.

Есть ли какой-либо метод обратного вызова в A, который вызывается в этот момент?

Примечание: onResume тесно связана с активностью, таким образом, она не называется. Фрагмент onResume() вызывается только при вызове функции onResume().

+0

Да. вы можете использовать Stack arraylist для него – Piyush

+0

уточните, пожалуйста, – seema

+0

Вам нужно добавить оба фрагмента в «Stack' arraylist, из которого вы можете нажать и выскочить фрагмент желания. Ссылка на эту ссылку http://stackoverflow.com/questions/16189088/overlapping-hidden-fragments-after-application-gets-killed-and-restored – Piyush

ответ

1

Извините, но нет обратного вызова, так как popToBackStack результаты для воссоздания фрагментов только в случае замены транзакции, а не в добавлении.

0

Вы можете добавить OnBackStackChangedListener к вашему fragment manager и контролировать BackStackEntryCount

getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() {  
    public void onBackStackChanged() { 
     Log.i(TAG, "back stack changed "); 
     int backCount = getSupportFragmentManager().getBackStackEntryCount(); 

     } 
    } 
}); 

После того, как вы получите этот триггер, вы можете передать сообщение от activity к fragment A, как описано в этой статье Deliver a Message to a Fragment или, возможно, имеют Observer в ваш Fragment соблюдать Observable в вашей основной Activity

0

onViewStateRestored() вызывается, когда фрагмент показан снова.