Аппаратное обеспечение BACK Btn не работает с первого раза
У меня есть несколько фрагментов, которые были добавлены (не заменены) друг на друга. И они также были добавлены в задний стек за исключением первого.
Фрагмент A -> Фрагмент B -> Фрагмент C
Аппаратное обеспечение назад Btn press работает нормально, когда я нахожусь на фрагменте B, и, таким образом, возвращаюсь к фрагменту A. Но на фрагменте C, когда я выполняю аппаратное обеспечение Backtn, нажимая, в первый раз ничего не происходит, и я просто получаю следующий журнал:
W / IInputConnectionWrapper: finishComposingText для неактивного InputConnection
После этого при второй попытке аппаратного возврата при нажатии вызывается onBackPressed() в действии, и фрагмент C выталкивается, а фрагмент B становится видимым.
У меня есть несколько оболочек редактирования текста в TextInputLayout на фрагменте C, но я не уверен, как они могут привести к такому поведению, если вообще.
Может кто-нибудь, пожалуйста, помогите мне понять, почему в первый раз аппаратное заднее нажатие кнопки Btn во фрагменте C onBackPressed() не вызывается, а только что появилось предупреждение?
Спасибо
private void navigateToFragment(@NonNull Fragment fragment, boolean addToBackStack, int enterAnim, int exitAnim, int popEnterAnim, int popExitAnim) {
FragmentManager fragmentManager = getSupportFragmentManager();
final FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.setCustomAnimations(enterAnim, exitAnim, popEnterAnim, popExitAnim);
transaction.add(R.id.member_address_root, fragment, fragment.getClass().getSimpleName());
if (addToBackStack){
transaction.addToBackStack(fragment.getTag());
}
transaction.commit();
}
1 ответ
Если вы используете Android 6.0.0, то это известная ошибка, и она исправлена в 6.0.1. Для получения более подробной информации перейдите по этой ссылке: https://issuetracker.google.com/issues/37069061