clientHeight/Width представления платформы Flutter всегда 0
При попытке добавить стороннюю js-библиотеку в веб-приложение Flutter я столкнулся с проблемой
clientHeight
а также
clientWidth
характеристики:
я добавил
DivElement
внутри моего дерева виджетов с помощью:
@override
void initState() {
super.initState();
divElement = DivElement()
..id = 'viewer_div'
..style.width = '100vh'
..style.height = '100vh'
..style.border = '1px solid green';
// ignore: UNDEFINED_PREFIXED_NAME
ui.platformViewRegistry.registerViewFactory(
'viewer', (int viewId) => dicomElement);
}
@override
Widget build(BuildContext context) {
return Container(
width: 512, height: 512,
color: Colors.transparent,
child: const HtmlElementView(viewType: 'viewer'),
);
}
Используется сторонней библиотекой js, которая добавляет
canvas
Элемент DOM как дочерний элемент div. Но сторонняя библиотека также устанавливает размер холста в соответствии с
divElement
clientWidth и clientHeight И эти значения всегда возвращают 0, поэтому окончательная ширина и высота холста устанавливаются равными 0!
Я попытался вызвать метод javascript, который добавляет холст после рендеринга первого кадра, но он ничего не меняет.