Sha*_*ram 5 listview webview flutter
是否有可能将WebView(webview_flutter) 放入 aListView而不分配其尺寸但自动采用其高度。我找到的唯一可行的解决方案是通过分配高度将 WebView 放入容器中,但我不想分配任何高度,我只想让它根据其内容占据高度。
我已经尝试了很多解决方案,包括Expanded为此但得到关于无限高度的错误。有什么解决办法吗?
很抱歉来晚了,但现在可以正常工作了。
我将 WebView 包装到 SizedBox 中并指定它的高度,如下所示:
_webViewController
.evaluateJavascript("document.body.clientHeight")
.then((height) {
print("Height of Page is: $height}");
setState(() {
sizedBoxHeight = double.parse(height);
});
});
Run Code Online (Sandbox Code Playgroud)
对于更高级的解决方案,我们可以使用 JavascriptChannels,如下所示:
javascriptChannels: Set.from([
JavascriptChannel(
name: 'RenderedWebViewHeight',
onMessageReceived: (JavascriptMessage message) {
setState(() {
sizedBoxHeight = double.parse(message.message);
});
]),
Run Code Online (Sandbox Code Playgroud)
在 JavaScript 中,我们可以做这样的事情。
onload="RenderedWebViewHeight.postMessage(document.body.clientHeight);"
Run Code Online (Sandbox Code Playgroud)
现在我们可以看到它动态计算 WebView 的高度,该 WebView 被包装在具有 WebView 高度的 SizedBox 中,因此我们可以将其放入 ListView 中。
更详细的解决方案可以查看webview_flutter_plus。
编辑:
document.documentElement.scrollHeight
Run Code Online (Sandbox Code Playgroud)
是最准确的做事方式。这适用于身体边缘和身体内部物质的边缘向下推动身体。更多信息请参阅如何使用 JavaScript 获取整个文档的高度
| 归档时间: |
|
| 查看次数: |
1873 次 |
| 最近记录: |