Skip to content

taehwandev/ComposeExtensions

Repository files navigation

Summary

Android Compose extension.

library

  • Keyboard show/hide extensions.
  • Android System UI Controller

Download alpha - compose 1.7.0-alpha04

require android 14(target 34, compile 34)

Use gradle - compose 1.7.0-alpha04, compose compiler 1.5.10, kotlin 1.9.22

implementation("tech.thdev:extensions-compose-keyboard-state:1.7.0-alpha04")
implementation("tech.thdev:extensions-compose-system-ui-controller:1.7.0-alpha04")

Download Stable - compose 1.6.4

Use gradle - compose 1.6.4, compose compiler 1.5.11, kotlin 1.9.23

implementation("tech.thdev:extensions-compose-keyboard-state:1.6.4")
implementation("tech.thdev:extensions-compose-system-ui-controller:1.6.4")

Release version are available in Sonatyp's repository.

Use keyboard extensions

Use scaffold modifier

CompositionLocalProvider(
    LocalMutableExKeyboardStateSourceOwner provides MutableExKeyboardStateSource()
) {
    Scaffold(
        modifier = Modifier
            .removeFocusWhenKeyboardIsHidden()
    ) {
    }
}

when checking status

val keyboardState by mutableKeyboardStateSource.keyboardState()

DisposableEffect(showKeyboard) {
    // Use keyboard state
    onDispose {
    }
}

Use system ui controller

// Remember a SystemUiController
val systemUiController = rememberExSystemUiController()

DisposableEffect(systemUiController) {
    // Update all of the system bar colors to be transparent, and use
    // dark icons if we're in light theme
    systemUiController.setSystemBarsColor(
        color = Color.Transparent,
    )

    // setStatusBarColor() and setNavigationBarColor() also exist

    onDispose {}
}

Sample

image