我注意到当打开我的应用程序时,有两个屏幕可以到达我的第一个颤音屏幕
1-1屏幕有灰色或(50%透明)状态和导航条,黑色和轻型图标。2-2屏幕有100%透明的状态和导航条和白色图标。
如何使所有屏幕像第一颤振屏幕100透明状态和导航栏与黑色图标(亮度黑暗)。
1屏幕

第二屏

1颤振屏

style.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- You can name this style whatever you'd like -->
<style name="AppTheme" parent="@android:style/Theme.Translucent.NoTitleBar">
<item name="android:windowBackground">@drawable/launch_background</item>
<item name="android:windowFullscreen">false</item>
</style>
</resources>MainActivity.kt
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity() {
}编辑
现在我已经改变了我的代码第一个屏幕是正确的,但第二个屏幕仍然是白色的图标和背景也是白色的,我要显示图标为黑色。
style.xml
<resources>
<!-- You can name this style whatever you'd like -->
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">@drawable/launch_background</item>
<item name="android:navigationBarColor">@android:color/white</item>
<item name="android:statusBarColor">@android:color/white</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowLightNavigationBar">true</item>
<item name="android:windowLightStatusBar">true</item>
</style>
</resources>MainActivity.kt
class MainActivity: FlutterActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val window: Window = getWindow()
window.setStatusBarColor(Color.TRANSPARENT)
window.setNavigationBarColor(Color.TRANSPARENT)
}
}状态栏/第二个屏幕

导航栏/第二屏幕

发布于 2021-09-09 04:50:27
适用于颤振屏幕中的状态条透明
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
//color set to transperent or set your own color
statusBarIconBrightness: Brightness.dark,
//set brightness for icons, like dark background light icons
)
);对于黑暗和光明的图标:
AppBar(
brightness: Brightness.dark,
//Brightness.light = Dark icon
//Brghtness.dark = Light icon
)编辑:如果您想使本机启动屏幕透明:
发射主题
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
Flutter draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowLightStatusBar">true</item>
</style>MainActivity.kt
import io.flutter.embedding.android.FlutterActivity
import android.os.Bundle
import android.view.Window
class MainActivity: FlutterActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val window: Window = getWindow()
window.setStatusBarColor(0x00000000)
}
}main.dart
void main() {
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
statusBarColor: Color(0x00000000),
statusBarIconBrightness: Brightness.dark,
));
runApp(MyApp());
}注意:根据颤振问题(https://github.com/flutter/flutter/issues/64001),这只在发布模式下工作,在调试模式中有闪烁。
编辑2:
将<item name="android:navigationBarColor">@android:color/white</item>和<item name="android:statusBarColor">@android:color/white</item>从Normal主题中删除,因为这将设置代码中的白色。AppTheme/LaunchTheme用于第一个屏幕(本机启动),而第一个颤振屏幕(您看到的第二个屏幕)使用NormalTheme。
更新style.xml
<resources>
<!-- You can name this style whatever you'd like -->
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
</resources>https://stackoverflow.com/questions/69111125
复制相似问题