短视频系统源码,在Android原生弹窗中引用Flutter页面
短视频系统源码,在Android原生弹窗中引用Flutter页面
如果没有引入FlutterBoost,可以使用FlutterView
1 | <br> // 通过FlutterView引入Flutter编写的页面<br>FlutterView flutterView = new FlutterView(this);<br>FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(<br> ViewGroup.LayoutParams.MATCH_PARENT,<br> ViewGroup.LayoutParams.MATCH_PARENT);<br>FrameLayout flContainer = findViewById(R.id.fl_container);<br>flContainer.addView(flutterView, lp);<br>FlutterEngine flutterEngine = new FlutterEngine(this);<br>flutterEngine.getDartExecutor().executeDartEntrypoint(<br> DartExecutor.DartEntrypoint.createDefault()<br>);<br>// 关键代码,将Flutter页面显示到FlutterView中<br>flutterView.attachToFlutterEngine(flutterEngine); |
所以,就需要使用Fragment了。
我们需要新建一个DialogFragment,代码如下所示
1 | <br> class MyTestFragmentDialog : DialogFragment() {<br> override fun onCreateView(<br> inflater: LayoutInflater,<br> container: ViewGroup?,<br> savedInstanceState: Bundle?<br> ): View? {<br> val root = inflater.inflate(R.layout.layout_fragment_container,container,false)<br> return root<br> }<br> override fun onStart() {<br> super.onStart()<br> val window = dialog!!.window<br> if (window != null) {<br> val params = window.attributes<br> params.gravity = Gravity.BOTTOM<br> params.width = ScreenUtils.getAppScreenWidth()<br> window.attributes = params<br> }<br> val fragment =<br> FlutterBoostFragment.CachedEngineFragmentBuilder(FlutterBoostFragment:: class .java)<br> .url( "testPage" ) //TODO ---> 这里需要修改为你自己项目中的URL<br> .build<FlutterBoostFragment>()<br> val transaction = childFragmentManager.beginTransaction()<br> transaction.replace(R.id.layout_container, fragment)<br> transaction.commit()<br> }<br>} |
进行调用
1 | <br>MyTestFragmentDialog().show(supportFragmentManager, "tag" ) |
以上就是 短视频系统源码,在Android原生弹窗中引用Flutter页面,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现