首页 > 其他分享 >[Jetpack Compose] 使用 Snackbar 实现退出应用再确认功能

[Jetpack Compose] 使用 Snackbar 实现退出应用再确认功能

时间:2022-09-24 20:35:04浏览次数:59  
标签:Compose showExitHint Jetpack Snackbar Activity var true

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun DemoFun() {
    var scope = rememberCoroutineScope()
    var snackbarHostState = remember { SnackbarHostState() }
    var showExitHint by remember { mutableStateOf(false) }
    BackHandler(true) {
        if (showExitHint) {
            // 调用 Activity 对象的 finishiAffinity() 方法,
            // 可以关闭当前 Activity 所属的 Activity 栈中所有的 Activity。
            // 如果所有 Activity 都保存在默认栈中,则使用该方法会直接退出程序。
            // (来源:https://blog.csdn.net/xieluoxixi/article/details/53469553)
            finishAffinity()
            return@BackHandler
        }
        // 将 showExitHint 的值设置为 true,表示 Snackbar 已经出现
        showExitHint = true
        scope.launch {
            // 当 Snackbar 消失时,改变 showExitHint 的值
            showExitHint = snackbarHostState.showSnackbar("再按一次以退出") != SnackbarResult.Dismissed
        }
    }
}

标签:Compose,showExitHint,Jetpack,Snackbar,Activity,var,true
From: https://www.cnblogs.com/thisDart/p/16726410.html

相关文章