短视频系统源码,在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页面,更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(82)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示