Flutter仿Boss-1.启动黑白屏问题

简介: Flutter仿Boss-1.启动黑白屏问题

简述

在使用Flutter开发App应用时,运行在Android手机启动时可能会遇到应用显示黑白屏的问题。这个问题做过Android开发的人员都知道,在Android12版本兼容中新增改用SplashScreen API定制系统启动画面,但是本文将介绍如何通过调整启动样式配置解决这个问题。

效果

  • 未修改
    image.png
  • 修改后

启动样式配置

在 Flutter 项目中,启动屏幕的配置文件位于 drawable 文件夹中的 launch_background.xml。以下是一个示例配置:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <solid android:color="#40C2BB" />
        </shape>
    </item>

    <item android:top="150dp">
        <bitmap
            android:gravity="top|center_horizontal"
            android:src="@drawable/splash_top_icon" />
    </item>
    <item
        android:gravity="bottom|center_horizontal"
        android:bottom="50dp">
        <bitmap
            android:gravity="center"
            android:src="@drawable/splash_bottom" />
    </item>
</layer-list>

请注意,这里的配置文件决定了启动时的主题样式,包括背景颜色和图标等。在这个例子中,背景颜色为 #40C2BB,顶部图标为 splash_top_icon,底部图标为 splash_bottom

修改启动屏幕样式

styles.xml 文件中修改 LaunchTheme 样式,确保正确引用了启动屏幕配置文件:

<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
    <item name="android:windowBackground">@drawable/launch_background</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

这里通过 android:windowBackground 指定了启动屏幕的背景,确保其引用了我们之前配置的 launch_background.xml 文件。

修改 AndroidManifest.xml

AndroidManifest.xml 文件中,确保正确引用了修改后的样式:

<activity
    android:name=".MainActivity"
    android:theme="@style/LaunchTheme">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

通过修改 android:theme 属性,确保启动时使用了我们修改后的样式。

结论

通过以上步骤,我们可以解决 Flutter 在 Android 平台启动时出现黑白屏的问题。通过正确配置启动屏幕样式,并确保在 styles.xmlAndroidManifest.xml 中正确引用,我们可以让应用在启动时呈现出预期的样式,提升用户体验。

相关文章
|
Android开发
flutter中实现仿Android端的onResume和onPause方法
flutter中实现仿Android端的onResume和onPause方法
|
2天前
Flutter仿Boss-4.短信验证码界面
Flutter仿Boss-4.短信验证码界面
Flutter仿Boss-4.短信验证码界面
|
2天前
|
UED
Flutter仿Boss-2.启动页、引导页
Flutter仿Boss-2.启动页、引导页
|
2天前
Flutter仿Boss-5.Lottie实现的Tab切换
本文介绍了如何在Flutter项目中使用Lottie库创建自定义动画的Tab栏项(LottieBottomBarItem),并展示了如何集成到带有PageView的主页底部导航栏中,以及相关的状态管理和逻辑控制。
|
2天前
|
缓存
Flutter仿Boss-6.底部tab切换
Flutter仿Boss-6.底部tab切换
|
2天前
Flutter-仿携程首页类型切换
文章介绍了使用Flutter构建一个包含TabBarView和自定义TabbarWidget的应用,其中CustomTabbarWidget展示了动态切换和动画效果,TrapezoidClipper则实现了独特的三角形指示器。作者通过代码示例展示了如何在携程类应用中创建可交互的导航界面。
|
2月前
|
人工智能 自然语言处理 API
我用 Flutter Gemini 写了一个水贴 APP
本文通过 Flutter 插件 google_generative_ai 快速的集成了 google ai gemini 来实现一个水贴的工具。
我用 Flutter Gemini 写了一个水贴 APP
|
8月前
|
Dart 开发工具 Android开发
flutter初体验demo踩坑指南
用flutter开发app客户端遇到的各种问题和解决办法
154 1
|
JSON API 数据格式
简单使用Flutter实现聊天
Flutter 实现聊天的方式有很多种,这里提供一种简单的实现方式
简单使用Flutter实现聊天
|
开发者
Flutter游戏快速了解
Flutter 提供了一些游戏开发相关的库和工具,可以帮助开发者快速构建出简单的 2D 游戏或游戏引擎。以下是一些 Flutter 游戏开发的重点知识点和创建游戏的步骤
Flutter游戏快速了解

热门文章

最新文章