KotlinLeaner
02/10/2023, 4:02 PMBackHandler
in the project? I am trying to use customise back handler in my project. I am trying to follow this answer, but it didn't work to go back in screen.KotlinLeaner
02/10/2023, 4:02 PM@Composable
fun TopBar(
activity: ComponentActivity = (LocalContext.current as ComponentActivity),
handleOnBackPressed: () -> Unit = { activity.finish() },
content: @Composable (PaddingValues) -> Unit = {}
) {
var isBackPressed by remember { mutableStateOf(false) }
Scaffold(
topBar = {
TopAppBar(
title = {},
navigationIcon = {
IconButton(
onClick = { isBackPressed = true }
) {
Icon(
imageVector = Icons.Filled.ArrowBack,
contentDescription = null,
tint = Aqua
)
}
if (isBackPressed) {
BackHandler(enabled = true, onBack = {
handleOnBackPressed()
})
}
}
)
},
content = content
)
}
I am running this in Pixel 7 with Android 13. Using compose_bom = "2022.11.00"
. ThanksZaki Shaikh
02/10/2023, 4:11 PMKotlinLeaner
02/10/2023, 4:12 PMKotlinLeaner
02/10/2023, 4:12 PMactivity.onBackPressed()
is deprecated.Zaki Shaikh
02/10/2023, 4:15 PMKotlinLeaner
02/10/2023, 4:20 PMfinish
and BackHandler
?Zaki Shaikh
02/10/2023, 4:31 PMKotlinLeaner
02/10/2023, 4:33 PMZaki Shaikh
02/10/2023, 4:39 PMKotlinLeaner
02/10/2023, 4:40 PMZaki Shaikh
02/11/2023, 5:02 AMvar state by remember { mutableStateOf("") }
var textFocus by remember { mutableStateOf(false) }
val focusManager = LocalFocusManager.current
BackHandler(textFocus) { focusManager.clearFocus() }
OutlinedTextField(
value = state,
onValueChange = { str -> state = str },
modifier = Modifier.onFocusChanged { focusState -> textFocus = focusState.hasFocus }
)
Zaki Shaikh
02/11/2023, 5:04 AM