我正在快速创建WebView。我想在页面加载时将CircularProgressIndicator显示为覆盖。为此,我使用了一个堆栈,其中顶部的子项是在Center中带有CircularProgressIndicator的Container,而WebView加载为底部的子项。现在,我在WebView中看到一个名为onPageFinished的回调,我想使用该回调来删除堆栈顶部的Container。我似乎没有找到从堆栈中删除子项的方法。我该如何实施呢?
Stack(
children: <Widget>[
WebView(
initialUrl: 'https://www.google.com',
javascriptMode: JavascriptMode.unrestricted,
onPageFinished: hideLoader,
),
Container(
decoration: BoxDecoration(
color: Color.fromRGBO(0, 0, 0, 0.5),
),
child: Center(
child: CircularProgressIndicator(),
),
)
],
)),
void hideLoader(String url) {}
答案 0 :(得分:1)
尝试以下代码
Stack(
children: <Widget>[
WebView(
initialUrl: 'https://www.google.com',
javascriptMode: JavascriptMode.unrestricted,
onPageFinished: hideLoader,
),
this._hideLoader == true
? Container(
decoration: BoxDecoration(
color: Color.fromRGBO(0, 0, 0, 0.5),
),
child: Center(
child: CircularProgressIndicator(),
),
)
: Container()
],
)),
bool _hideLoader = false;
void hideLoader(String url) {
setState(() {
this._hideLoader = false;
});
}