首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >颤振如何使状态和导航条完全透明

颤振如何使状态和导航条完全透明
EN

Stack Overflow用户
提问于 2021-09-09 01:06:31
回答 1查看 636关注 0票数 1

我注意到当打开我的应用程序时,有两个屏幕可以到达我的第一个颤音屏幕

1-1屏幕有灰色或(50%透明)状态和导航条,黑色和轻型图标。2-2屏幕有100%透明的状态和导航条和白色图标。

如何使所有屏幕像第一颤振屏幕100透明状态和导航栏与黑色图标(亮度黑暗)。

1屏幕

第二屏

1颤振屏

style.xml

代码语言:javascript
复制
<?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

代码语言:javascript
复制
import io.flutter.embedding.android.FlutterActivity
class MainActivity: FlutterActivity() {
}

编辑

现在我已经改变了我的代码第一个屏幕是正确的,但第二个屏幕仍然是白色的图标和背景也是白色的,我要显示图标为黑色。

style.xml

代码语言:javascript
复制
<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

代码语言:javascript
复制
class MainActivity: FlutterActivity() {
      override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val window: Window = getWindow()
        window.setStatusBarColor(Color.TRANSPARENT)
        window.setNavigationBarColor(Color.TRANSPARENT)
        
     
    }
}

状态栏/第二个屏幕

导航栏/第二屏幕

EN

回答 1

Stack Overflow用户

发布于 2021-09-09 04:50:27

适用于颤振屏幕中的状态条透明

代码语言:javascript
复制
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
   )
);

对于黑暗和光明的图标:

代码语言:javascript
复制
AppBar( 
   brightness: Brightness.dark,
   //Brightness.light = Dark icon
   //Brghtness.dark = Light icon
)

参考链接:https://www.fluttercampus.com/guide/12/how-to-make-status-bar-transparent-and-icon-light-dark-flutter/

编辑:如果您想使本机启动屏幕透明:

发射主题

代码语言:javascript
复制
<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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
<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>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69111125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档