首页 > 解决方案 > 如何在 Flutter 中制作透明的应用程序?

问题描述

我是新来的,我正在为android开发一个启动器应用程序,我唯一无法实现的是使应用程序透明。当我应用Colors.transparent时,它总是返回黑屏而不是它下面的壁纸。可以任何人都可以帮我解决这个问题

标签: androidflutterdart

解决方案


首先,在 android 项目中将您的应用程序的主题修改为res/values/styles.xml

    <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:backgroundDimEnabled">false</item>
    </style>

然后,将透明活动标志添加到启动意图:

import android.os.Bundle
import androidx.annotation.NonNull
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.android.FlutterActivityLaunchConfigs.BackgroundMode.transparent
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant

class MainActivity: FlutterActivity() {
    override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
        GeneratedPluginRegistrant.registerWith(flutterEngine);
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        intent.putExtra("background_mode", transparent.toString())
        super.onCreate(savedInstanceState)
    }
}

repo中还有一个较旧的透明应用程序示例。


推荐阅读