@Override
public void onBackPressed() {
if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
FragmentManager.BackStackEntry bSE = getSupportFragmentManager().getBackStackEntryAt(getSupportFragmentManager().getBackStackEntryCount() - 1);
Fragment frag = getSupportFragmentManager().findFragmentByTag(bSE.getName());
if (frag instanceof BackButtonBlocker)
{
BackButtonBlocker callback = (BackButtonBlocker) frag;
callback.onBackPressed();
}
else {
getSupportFragmentManager().popBackStack();
}
} else {
super.onBackPressed();
}
}
Интерфейс BackButtonBlocker предназначен для обратного вызова. мой фрагмент реализует BackButtonBlocker, но иногда onBackPressed не происходит (onKeyUp также).Активность андроида onBackPressed not called
, когда я открываю навигационный ящик, onBackPressed и полная логика работает точно.
Почему деятельность должна терять фокус?
android.support.v4.app.Fragment
public interface BackButtonBlocker{ void onBackPressed();}
Я добавил фрагмент, используя ,, заменить «». – sofie
Мне нужно получить обратный вызов в фрагменте, когда нажата кнопка «Назад». (например, для открытия любого диалога ..) – sofie