https://blog.csdn.net/zxj2589/article/details/136039687

方式2

class MainActivity: ComponentActivity() {
    private val TAG = "MainActivity==>" 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContent {
            DisposableEffect(Unit) {
                enableEdgeToEdge(
                    statusBarStyle = SystemBarStyle.auto(
                        android.graphics.Color.TRANSPARENT,
                        android.graphics.Color.TRANSPARENT,
                    ) {false}, //这里的意思是是否需要检测深色主题模式,我们使用自己的背景,所以不需要直接设置为false,下面也是一样的
                    navigationBarStyle = SystemBarStyle.auto(
                        lightScrim,
                        darkScrim,
                    ) { false},
                )
                onDispose {}
            }
            Column(
                modifier = Modifier
                    .background(Color.White)
                    .fillMaxWidth()
                    .fillMaxHeight()
                    .statusBarsPadding()
            ) {
                // 显示你的UI
            }
        }
    }

    override fun onConfigurationChanged(newConfig: Configuration) {
        Log.i(TAG, "onConfigurationChanged: $newConfig")
        super.onConfigurationChanged(newConfig)
    }

    private val lightScrim = android.graphics.Color.argb(0xe6, 0xFF, 0xFF, 0xFF)
    private val darkScrim = android.graphics.Color.argb(0x80, 0x1b, 0x1b, 0x1b)
}

通过DisposableEffect即可实现,无须引入第三方API。


0 条评论

发表回复

您的电子邮箱地址不会被公开。