我正在快速开发应用程序,试图在Webview中预加载页面时遇到问题。基本上,该应用程序使用选项卡栏,其中有一些选项卡包含正常的列表视图内容,还有2个选项卡应具有webview内容。任何想法都知道如何在应用程序加载时预加载Web视图,并使它们在后台保持活动状态,因此,当用户在选项卡之间滑动并进入Web视图时,网站已经加载并呈现,因此UX是无缝的。我尝试创建WebView实例,并在应用程序加载时使用setstate将其分配给变量,但无济于事。
任何帮助将不胜感激。
所以您可以尝试做的是这个:
用here所示的PageView封装您正在TabBar中调用的小部件。
您还可以通过使用AutomaticKeepAliveClientMixin
扩展有状态的小部件来确保WebView在加载一次后仍保持活动状态。使用此方法时,请确保您声明:
bool get wantKeepAlive => true;
编辑:为了在应用启动时预加载所有页面,可以在声明TabBar的类中使用Indexed Stack。包裹身体,像这样调用所有页面:
Widget build(BuildContext context) {
return
Scaffold(
body:IndexedStack(
index: _selectedIndex,
children: _children,
),),}