Я пытаюсь создать экран с WebView (из webview_flutter: ^ 0.3.5 + 3 ) и AppBar
, который я хочу прокрутить за пределы экрана при прокрутке пользователя.
Я наткнулся на это руководство и попытался реализовать нечто подобное, но без кубиков.
Есть ли способ использовать WebView
в CustomScrollView
с Slivers
или это еще не поддерживается?
Я могу заставить работать панель прокрутки, если создаю обычные виджеты в своем 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 приветствуются.
Редактировать BOUNTY
Решение, предоставленное Джордан-Дэвисом, работает, но очень изменчиво.
Всякий раз, когда 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"),
)
],
);
}
Есть ли лучший способ?