是否有办法在经过一定的延迟后处理或弹出窗口小部件?

时间:2019-12-14 20:52:03

标签: flutter dart

一段时间后,我试图处理加载的动画,有什么办法可以实现?谢谢。

1 个答案:

答案 0 :(得分:0)

您可以在setState中更改小部件:

class _PageState extends State<Page> {
  Widget _loading = Container(child: Text("loading"));

  Future<void> _removeLoading() async {
    await Future.delayed(Duration(seconds: 30));
    setState(() {
      _loading = Container();
    });
  }

  @override
  void initState() {
    super.initState();
    _removeLoading();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: _loading,
      ),
    );
  }

或者使用布尔变量更改状态:

class _PageState extends State<Page> {
  boool _loading = true;

  Future<void> _stopLoading() async {
    await Future.delayed(Duration(seconds: 30));
    setState(() {
      _loading = false;
    });
  }

  @override
  void initState() {
    super.initState();
    _stopLoading();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: child: loading ? YourLoadingWidget : NotALoadingWidget
    );
  }