android - 如何从 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
回答,但这不会影响启动期间的状态和导航栏。
在这里观看:
解决方案
推荐阅读
- extjs - 当需要父视图模型时,Extjs 使用子视图模型数据
- python - 使用条件将字符串拆分为多个字符串
- rust - 如何从 rust 中连接 scylladb
- python - 为什么我在使用“while True”时会陷入不断循环?
- javascript - 类中的方法仅在它们内部返回值 self JS
- android - 是否可以清理由另一个系统库加载的共享 (HAL) 库?
- react-native - 如何在 react-native 中播放背景视频?
- excel - 将 excel 中的值与匹配和更改的条件相加
- swift - Swift 编译器警告 - 实例方法需要 ###ms 进行类型检查(限制:100 毫秒)
- git - 具有相同提交消息的 Git squash 提交