Циркулярный индикатор хода выполнения не отображается, если условие выполнено - PullRequest
0 голосов
/ 03 мая 2020
    import 'package:flutter/material.dart';
    import 'package:futureprovider/Employee.dart';
    import 'package:futureprovider/EmployeeService.dart';
    import 'package:provider/provider.dart';

    void main() => runApp(MyApp(
    ));

    class MyApp extends StatelessWidget {

      final PostService fur = PostService();

      @override
      Widget build(BuildContext context) {
        return MultiProvider(
          providers: [
            FutureProvider(create:(context)=> fur.getEmployees(),
            catchError: (context,e){
              print(e.toString());
              },
              //initialData: [Post(id:1,name: 1,title: '1',body: '1')],
            )
          ],
          child: MaterialApp(
            home: Scaffold(
              appBar: AppBar(title: Text("Posts Dashboard")),
              body:TilesOfPost(),
            ),
          ),
        );
      }
    }

    class TilesOfPost extends StatelessWidget {
      @override
      Widget build(BuildContext context) {

        List<Post> posts = Provider.of<List<Post>>(context);

        print("Length:"+posts.length.toString());

        return (posts==null)? Center(child:CircularProgressIndicator()):ListView.builder(
            itemCount: posts.length,
            itemBuilder: (context,index){
              return ListTile(
                title: Text(posts[index].id.toString()),
                subtitle: Text(posts[index].name.toString())
              );
            }
        );
      }
    }

В следующем коде у меня есть Future Provider, который предоставляет некоторые будущие значения, и когда я выполняю код,

первоначально, когда список равен нулю, он должен показывать Circular Progress Widget,

, но это дает исключение для ListView, который строится с нулевой длиной.

Как показать Circular Progress Inidcator, когда значение Future все еще не получено

1 Ответ

1 голос
/ 03 мая 2020

Ваше заявление на печать является актуальной проблемой. когда данные нулевые, то также проверяется длина, поэтому я выкидываю ошибку, из-за которой вы также не можете видеть CircularProgressIndicator ().

...