Escolha uma Página

Como tratar o envento de onBackPress no fragments

Escrito por Alisson

agosto 17, 2023

Então, se você precisa de fazer alguma verificação no evento de onBackPressed dentro de um fragment? Se não sabe como fazer, é muito simples, basta colocar os códigos abaixo no seu fragment.

requireActivity().addOnBackPressedCallbackWithInterval(2000) {
    Toast.makeText(context, getString(R.string.alert_press_again_to_exit), Toast.LENGTH_LONG).show()
}
fun FragmentActivity.addOnBackPressedCallbackWithInterval(millisToBack: Long, firstPressed: () -> Unit) {
    onBackPressedDispatcher.addCallback(
        ActivityUtils.getOnBackPressedCallbackWithInterval(
            millisToBack,
            firstPressed
        )
    )
}
object ActivityUtils {
    fun getOnBackPressedCallbackWithInterval(millisToBack: Long, firstPressed: () -> Unit) =
        object : OnBackPressedCallback(true) {
            override fun handleOnBackPressed() {
                isEnabled = false
                firstPressed()
                object : CountDownTimer(millisToBack, millisToBack) {
                    override fun onTick(millisUntilFinished: Long) {}

                    override fun onFinish() {
                        isEnabled = true
                    }
                }.start()
            }
        }
}

Você pode gostar…

0 comentários

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *