electrolobzik
08/06/2024, 6:56 AMoverride fun consumedBackPressed(): Boolean
If it returns true the activity will do nothing and if it returns false the activity will change fragments according to it’s own logic.Arkadii Ivanov
08/06/2024, 7:35 AMOnBackPressedDispatcher
and handles back presses automatically.
If you really want to use something like consumeBackPress
, then you can also try creating OnBackPressedDispatcher
manually and then use it.
But keep in mind that this variant is not compatible with the predictive back gesture. The proper way is as described in the docs.
import android.os.Bundle
import androidx.activity.OnBackPressedDispatcher
import androidx.fragment.app.Fragment
import com.arkivanov.decompose.defaultComponentContext
import com.arkivanov.sample.shared.root.DefaultRootComponent
import com.arkivanov.sample.shared.root.RootComponent
class MyFragment : Fragment() {
private val onBackPressedDispatcher = OnBackPressedDispatcher()
private lateinit var rootComponent: RootComponent
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
rootComponent = DefaultRootComponent(
componentContext = defaultComponentContext(
onBackPressedDispatcher = onBackPressedDispatcher,
)
)
}
fun consumedBackPressed(): Boolean {
if (onBackPressedDispatcher.hasEnabledCallbacks()) {
onBackPressedDispatcher.onBackPressed()
return true
}
return false
}
}
electrolobzik
08/06/2024, 9:04 AMArkadii Ivanov
08/06/2024, 9:19 AMelectrolobzik
08/06/2024, 9:31 AMArkadii Ivanov
08/06/2024, 9:43 AMArkadii Ivanov
08/06/2024, 9:44 AMelectrolobzik
08/06/2024, 9:48 AMArkadii Ivanov
08/06/2024, 9:49 AMelectrolobzik
08/06/2024, 9:49 AMelectrolobzik
08/06/2024, 1:57 PMArkadii Ivanov
08/06/2024, 1:58 PMDennis
08/07/2024, 8:08 PM