首页 > 解决方案 > 如何从 Launch on 为 Flutter Android 的状态和导航栏启用 Light Mode

问题描述

我想从启动开始为 Flutter Android 中的状态和导航栏启用浅色模式,使图标变暗。我可以在主活动中更改两者的背景颜色,但设置为浅色模式window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR似乎没有效果,并且图标保持白色。

在这里观看:

代码如下所示:

样式.xml

   <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
        <item name="android:windowBackground">@drawable/launch_background</item>
        <item name="android:windowDisablePreview">true</item>
    </style>

MainActivity.kt

class MainActivity : FlutterActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        if (Build.VERSION.SDK_INT >= 26) {
            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION or WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
            window.statusBarColor = Color.parseColor("#ffffff")
            window.navigationBarColor = Color.parseColor("#ffffff")
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
            window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
        }

        if (Build.VERSION.SDK_INT >= 28) {
            window.navigationBarDividerColor = Color.parseColor("#eeeeee")
        }

    }
}

我知道我们可以使用 Flutter API 设置它,并在此处SystemChrome回答,但这不会影响启动期间的状态和导航栏。

在这里观看:

标签: androidflutter

解决方案


推荐阅读