我正在尝试创建一个具有 WebView 的屏幕(来自webview_flutter: ^0.3.5+3)和一个AppBar
我想在用户滚动时滚动到屏幕外的屏幕。
我偶然发现了这个指南并尝试实现类似的东西,但没有骰子。
有没有办法WebView
在CustomScrollView
with中使用 aSlivers
或者这还不支持?
SliverChildListDelegate
如果我在我的(我尝试过Row
,等)中创建常规小部件,我可以让滚动应用栏工作Text
,Container
但没有运气使用WebView
.
@override
Widget build(BuildContext context) {
return Scaffold(
body: CustomScrollView(
slivers: <Widget>[
SliverAppBar(
title: const Text("Heading"),
floating: true,
),
SliverList(
delegate: SliverChildListDelegate([
Container(
child: WebView(
initialUrl: url,
javascriptMode: JavascriptMode.unrestricted,
),
)
]
),
)
],
)
);
}
欢迎任何指针/建议/RTFM。
编辑赏金
jordan-davies 提供的解决方案有效,但非常不稳定。每当SliverAppBar
滚动离开时,都会WebView
尝试调整自身大小以填充剩余的视口。这会导致非常不稳定/缓慢的体验。
@override
Widget build(BuildContext context) {
return CustomScrollView(
slivers: <Widget>[
SliverAppBar(
title: const Text("Heading"),
floating: true,
),
SliverFillRemaining(
child: WebView(initialUrl: "http://stackoverflow.com"),
)
],
);
}