- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Flutter 中尝试的这个功能叫做 添加到应用程序 .
我阅读了他们的documentation 中包含的说明。关于如何添加 FlutterFragment
作为我的应用程序中的一个部分。
如文档 example 中所示,我应该可以添加我的newFlutterFragment
就像我如何添加普通 Fragment
Android 中的类。
// Create and attach a FlutterFragment if one does not exist.
if (flutterFragment == null) {
var newFlutterFragment = FlutterFragment.createDefault()
flutterFragment = newFlutterFragment
fragmentManager
.beginTransaction()
.add(
R.id.fragment_container,
newFlutterFragment,
TAG_FLUTTER_FRAGMENT
)
.commit()
}
FlutterEngine
时才有效。使用
main
或
默认入口点 .
FlutterFragment
使用
自定义入口点 ,它似乎不接受我在
.add(<INVALID_TYPE>,...,...)
中传递的对象类型
FragmentTransaction
的方法.
FlutterFragment
作为我拥有的 Flutter 剖面 View 的容器?
最佳答案
什么地方出了错?
目前,如果您使用 安卓X ,您可以使用的唯一方法FlutterFragment
在嵌入你的 Flutter 布局时,它被添加为 Android 存档 (AAR) 在您的依赖项中。
我之前开过issue在 Github 关于这个问题,在撰写本文时它仍然是开放的。
将 Flutter 添加为 AAR 依赖项既有优点也有缺点。使用 AAR,您的团队不需要在本地机器上安装 Flutter SDK,也不需要安装 Dart SDK。但是,由于 AAR 文件是编译后的工件,因此您的团队可能无法在开发期间编辑项目的 Flutter 源代码。
Here's有关如何使用作为 AAR 模块添加的 Flutter 源代码来设置 Android 项目的文档。
But why really use AAR?
FlutterFragment
以及下面的一些(如果不是全部)类
io.flutter.embedding
仍在使用支持库而不是 AndroidX,有一个
依赖项不匹配 .使用 AAR 和您的
jetifier在
期间启用编译 ,您的 Flutter 的 AAR 输出现在将使用等效的 AndroidX 库,这在
期间不会发生。运行时间 .
But, I need my team to work on some Flutter app features simultaneously with some Android app project changes.
FlutterFragment
在该特定类型的设置中,您仍然可以使用
FlutterView
,特别是如果您只在 Android 应用程序中显示部分 Flutter 布局。
portfolioEngine?.let { flutterEngine ->
// Start executing Dart code to pre-warm the FlutterEngine.
// https://github.com/flutter/flutter/wiki/Experimental:-Launch-Flutter-with-non-main-entrypoint
flutterEngine.dartExecutor.executeDartEntrypoint(
DartExecutor.DartEntrypoint(
FlutterMain.findAppBundlePath(),
"customEntryPoint"
)
)
// Cache the FlutterEngine to be used by FlutterActivity.
FlutterEngineCache
.getInstance()
.put("SOME_FLUTTER_ENGINE_NAME", flutterEngine)
// Add the Flutter layout
flutterView = FlutterView(context)
flutterView.attachToFlutterEngine(flutterEngine)
flutterContainerView?.removeAllViews() // Only if deemed necessary
flutterContainerView?.addView(flutterView)
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:id="@+id/flutterContainerView"
android:layout_width="match_parent"
android:layout_height="300dp" />
</LinearLayout>
FlutterActivity
的好处之一或
FlutterFragment
超过
FlutterView
是同时管理 Android 和 Flutter 代码生命周期的便利性。不用担心,您仍然可以通过使用附加的
FlutterEngine
管理其生命周期来处理 Flutter 代码的行为方式。 .
关于android - 如何使用带有自定义入口点的 FlutterFragment 在我的 Android 应用程序中嵌入 Flutter 布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59529885/
我正在尝试使用以下步骤在我现有的 Android 应用程序中嵌入一个 Flutter 应用程序: https://github.com/flutter/flutter/wiki/Add-Flutter
我正在尝试将 flutter 应用程序添加为原生 android Activity 中的 fragment 。对于 flutter,我使用了默认的计数器应用程序在 native Android 方面,
我在 Flutter 中尝试的这个功能叫做 添加到应用程序 . 我阅读了他们的documentation 中包含的说明。关于如何添加 FlutterFragment作为我的应用程序中的一个部分。 如文
我是一名优秀的程序员,十分优秀!