У меня есть дочерний Fragment2 внутри родительского фрагмента1, и я хочу изменить фрагмент по нажатию на кнопку «Назад» и в следующий раз при нажатой кнопке «Назад» Я хочу закрыть действие? - PullRequest
1 голос
/ 22 января 2020

Для изменения дочернего фрагмента2 (контейнер внутри фрагмента 1 родительского фрагмента)

       view.isFocusableInTouchMode = true
    view.requestFocus()
    view.setOnKeyListener(View.OnKeyListener { v, keyCode, event ->
        if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_UP) {
            childFragmentManager!!.popBackStack(null,FragmentManager.POP_BACK_STACK_INCLUSIVE)

            return@OnKeyListener true
        }

        false
    })

Для закрытия действия

override fun onBackPressed() {
    if (doubleBackToExitOnce) {
        super.onBackPressed()
            finishAffinity()
        return
    }

    this.doubleBackToExitOnce = true

    Toast.makeText(applicationContext, "Press again to exit ", Toast.LENGTH_SHORT).show()

    Handler().postDelayed({
        kotlin.run { doubleBackToExitOnce = false }
    }, 2000)
}

В этом случае я могу изменить только дочерний фрагмент и не могу закрыть деятельность

1 Ответ

0 голосов
/ 22 января 2020
getActivity()
                    .getSupportFragmentManager()
                    .beginTransaction()
                    .remove(getSupportFragmentManager().findFragmentById(R.id.container)).commit();

также вы можете удалить фрагмент с помощью TAG

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...