如何制作透明/显示壁纸的 Flutter 应用
Posted
技术标签:
【中文标题】如何制作透明/显示壁纸的 Flutter 应用【英文标题】:How to make a transparent/wallpaper-showing Flutter app 【发布时间】:2017-12-04 22:58:50 【问题描述】:基本上,我正在尝试使用 Flutter 编写启动器来获得乐趣,而我坚持的一件事是主屏幕。我正在努力做到这一点,以便您可以通过应用程序并通过壁纸看到。我像这样更改了我的androidManifest.xml
:
<activity android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="@android:style/Theme.Wallpaper.NoTitleBar" <!-- I changed this line -->
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
并将其放入我的main.dart
:
return new MaterialApp(
title: 'Launcher',
theme: new ThemeData(
scaffoldBackgroundColor: Colors.transparent, // <-- this line
),
home: new HomeScreen(),
);
但它仍然不起作用。我错过了什么?
【问题讨论】:
【参考方案1】:现在(2019 年 7 月)可以使用透明的颤动背景。
Android 问题正在讨论中here
怎么做:
This评论有详细解释。一些透明的 Android 演示应用:
显示设备壁纸的透明应用GitHub repo 一个透明的应用程序,显示在其他应用程序之上。 GitHub repoios 问题是here
comment 建议可以在 iOS 上使用透明背景。
可以通过在 ViewController 中添加以下行来实现。
flutterViewController.modalPresentationStyle = UIModalPresentationStyle.overCurrentContext
并设置flutterViewController.isViewOpaque = false
【讨论】:
【参考方案2】:我相信您在 Flutter 引擎中遇到了一个错误,该错误由 https://github.com/flutter/flutter/issues/9627 跟踪。在撰写本文时,该错误已确定 Flutter 引擎(Flutter 的 c++ 部分)默认情况下在让 Dart 代码绘制之前在 Android 上将整个 FlutterView 区域填充为黑色。
【讨论】:
以上是关于如何制作透明/显示壁纸的 Flutter 应用的主要内容,如果未能解决你的问题,请参考以下文章
Flutter图表库fl_chart的使用解析(二)-折线图
如何在我的 iOS 应用程序中获得透明背景,以便我可以看到主屏幕壁纸?
win10开机只有任务栏,没有应用,壁纸显示正常,还要重启一下才行?
如何让 Flutter 应用在 android 导航栏后面绘制并使导航栏完全透明?