Ho avuto lo stesso problema.
Ho utilizzato linee guida standard di lavoro con frammento (Building a Flexible UI). Ho due frammenti (ListItemsFragment e InfoItemFragment). Quando si usano le normali dimensioni dello schermo, sostituisco ListItemsFragment su InfoItemFragment e il metodo suHiddenChanged non chiama automatico.
FragmentTransaction mFragmentTransaction = getFragmentManager().beginTransaction();
mFragmentTransaction.replace(R.id.container_fragment, new InfoItemFragment(), "tag_fr_infoItem");
mFragmentTransaction.addToBackStack(null);
mFragmentTransaction.commit();
Penso che dobbiamo richiamare il metodo hide FragmentTransaction. Ad esempio:
ListItemsFragment mListItemsFragment;
FragmentTransaction mFragmentTransaction = getFragmentManager().beginTransaction();
mFragmentTransaction.replace(R.id.container_fragment, new InfoItemFragment(), "tag_fr_infoItem");
if (mListItemsFragment != null) {
mFragmentTransaction.hide(mListItemsFragment);
}
mFragmentTransaction.addToBackStack(null);
mFragmentTransaction.commit();
E ora il metodo suHiddenChanged funziona correttamente. Quando l'utente fa clic sul pulsante indietro, mListItemsFragment mostra nuovamente e il metodo onHiddenChanged viene chiamato automatico.
Nella documentazione detta: sarà chiamata ogni volta che il frammento cambia stato da detto
Credo si debba valore di variazione manuale quindi metodo verrà chiamato.
Grazie per la risposta, ma il metodo non è stato chiamato mai. Quindi l'ho risolto a causa del fatto che il mio viewpager ha un ascoltatore. In questo ascoltatore chiamo il metodo onHidden-Changed. Stupido ma si, ora funziona. – mikepenz
Non è mai stato chiamato. –