flutter - 调整具有 iframe 的窗口大小时,Flutter UI 变得不稳定 - Flutter 最新版本:Flutter 2.3.0-24.1.pre
问题描述
调整具有 iframe 的窗口大小时,Flutter UI 变得不稳定 - Flutter 最新版本:Flutter 2.3.0-24.1.pre
iframe 元素最初放置在行内,当窗口的大小水平减小时,它会更改为列,而将列更改为行,反之亦然。Flutter UI 变得不稳定,因为它在屏幕上留下了大量重复的 UI。
以下是我正在使用的示例代码。
重现问题的步骤:运行以下代码并一次又一次地水平调整浏览器窗口的大小。
import 'dart:html' as html;
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key? key}) : super(key: key);
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
void initState() {
super.initState();
}
var _iframeWidget = HtmlElementView(
key: UniqueKey(),
viewType: 'column',
);
@override
Widget build(BuildContext context) {
print(' build called');
var re = ui.platformViewRegistry.registerViewFactory(
'column',
(int viewId) {
html.IFrameElement _iframeElement = html.IFrameElement()
..slot = "column"
..src = 'https://www.youtube.com/embed/D_mCZlQZg9Y'
..style.width = '100%'
..style.height = '100%';
print('plat');
return _iframeElement;
},
);
return Scaffold(
appBar: AppBar(
title: Text('Demo'),
),
body: Center(
child: Container(
height: 400,
width: 500,
child: MediaQuery.of(context).size.width < 800 ? Row(
children: [
Container(width: 300, height: 200, child: _iframeWidget),
Text('Some text')
],
) : Column(
children: [
Container(width: 300, height: 200, child: _iframeWidget),
Text('Some text')
],
),
), // This trailing comma makes auto-formatting nicer for build methods.
),
);
}
}```
解决方案
推荐阅读
- regex - 日期的 HTML5 输入模式
- java - 基于 Flash Player 解析视频源
- amazon-web-services - 在 EC2 终止时调用脚本
- dart - 如何在 Flutter 中获取当前上下文?
- mysql - 从 phpMyAdmin 在 MATLAB 中导入图像
- javascript - 动态 SQL 字符串不适用于双引号
- javascript - 如何用js求和1行和一列解决?JS
- apache-spark - 外部查找 Spark Streaming
- r - 如何制作包含大量数据的热图?
- python - ansible 错误:从版本导入 VERSION\nImportError: No module named version\n", "module_stdout": "", "msg": "MODULE FAILURE", "rc": 0}