android - 如何在 Flutter 中制作透明的应用程序?
问题描述
我是新来的,我正在为android开发一个启动器应用程序,我唯一无法实现的是使应用程序透明。当我应用Colors.transparent时,它总是返回黑屏而不是它下面的壁纸。可以任何人都可以帮我解决这个问题
解决方案
首先,在 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中还有一个较旧的透明应用程序示例。
推荐阅读
- css - 如何在 div 中对齐以证明其合理性?
- r - 我想将 tbl_df 转换为 ts 进行时间序列分析。我已经完成了,但丢失了我的(月)列,这是我数据中的日期
- android - 如果 Firestore 中不存在,如何添加到数组并创建文档?
- javascript - 如何将绝对网址转换为相对网址
- amazon-web-services - jenkinsfile 的 repo 是否必须可以从工作代理访问?
- python - 将梯形与正方形和矩形区分开来
- angular - 检查组件上是否存在输出
- angular - 从子表单中添加卡片,如果没有填写卡片,还检查有效性
- javascript - 在 Javascript 中使用 fetch 创建一个通用函数来获取数据
- cmake - Cmake:在子目录中定义的目标没有链接。我得到未定义的参考