首页 > 解决方案 > 在颤动一定延迟后,有没有办法处理或弹出小部件?

问题描述

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

标签: flutterdart

解决方案


您可以更改 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
    );
  }


推荐阅读