web-dev-qa-db-fra.com

Y a-t-il un jetpack composant l'équivalent pour Android: Gardefreenon pour garder l'écran vivant?

J'ai un composé composable qui utilise un gestionnaire pour mettre à jour lentement l'alpha d'une image à l'intérieur d'une composition. Cependant, je constate que l'écran s'éteint avant que l'animation puisse terminer.

Dans les mises en page XML, nous pourrions le garder en vie en utilisant
[.____] Android:keepScreenOn
ou
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

Existe-t-il un moyen de faire cela en utilisant la composition sans utiliser la permission de verrouillage de réveil?

6
Bharadwaj Giridhar

C'est comme ça que j'ai mis en œuvre le mien

Dans ma fonction compostable, j'ai un bouton pour activer le flag_keeigne_screen_on ou effacer Flag_ekee_screen_on

@Composable
fun MyButton() {
    var state by rememberSaveable {
        mutableStateOf(false)
    }

    val context = LocalContext.current

    Button(
       ...
       modifier = Modifier
            .clickable {
                state = !state
                keepScreen(state, context)
            }
       ...
     )
}

fun keepScreen(state: Boolean, context : Context) {
   val activity = context as Activity
   if(state) {
     activity.window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
   }else {
   activity.window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
   }
}

0
Ashaluwala Kazeem