title: Null check operator used on a null value Carousel Flutter
body: <p>Good Morning,
  I'm trying to put a Carousel on the home page looking for Firebase data, but for some reason, the first time I load the application it appears the message below:</p>
  <pre><code>════════ Exception caught by widgets library ═════════════════════════════════════ ══════════════════
  The following _CastError was thrown building DotsIndicator (animation: PageController # 734f9 (one client, offset 0.0), dirty, state: _AnimatedState # 636ca):
  Null check operator used on a null value
  </code></pre>
  <p>and the screen looks like this:</p>
  <p><a href="https://i.stack.imgur.com/dntBE.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/dntBE.jpg" alt="Screen Fail" /></a></p>
  <p>After giving a hot reload the error continues to appear, but the image is loaded successfully, any tips of what I can do?</p>
  <p><a href="https://i.stack.imgur.com/ILvCb.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/ILvCb.jpg" alt="Screen Ok" /></a></p>
  <p>HomeManager:</p>
  <pre><code>import 'package:cloud_firestore/cloud_firestore.dart';
  import 'package:flutter/cupertino.dart';
  import 'package:flutter/material.dart';
  import 'package:provantagens_app/models/section.dart';
  
  class HomeManager extends ChangeNotifier{
    HomeManager({this.images}){
      _loadSections();
      images = images ?? [];
    }
  
  
    void addSection(Section section){
      _editingSections.add(section);
      notifyListeners();
    }
  
  
  
    final List&lt;dynamic&gt; _sections = [];
    List&lt;String&gt; images;
    List&lt;dynamic&gt; newImages;
    List&lt;dynamic&gt; _editingSections = [];
  
    bool editing = false;
    bool loading = false;
    int index, totalItems;
  
  
  
  
    final Firestore firestore = Firestore.instance;
  
  
    Future&lt;void&gt; _loadSections() async{
      loading = true;
      firestore.collection('home').snapshots().listen((snapshot){
        _sections.clear();
        for(final DocumentSnapshot document in snapshot.documents){
          _sections.add( Section.fromDocument(document));
         images = List&lt;String&gt;.from(document.data['images'] as List&lt;dynamic&gt;);
        }
      });
      loading = false;
      notifyListeners();
  
    }
  
    List&lt;dynamic&gt;  get sections {
      if(editing)
        return _editingSections;
      else
        return _sections;
    }
  
    void enterEditing({Section section}){
      editing = true;
  
      _editingSections = _sections.map((s) =&gt; s.clone()).toList();
  
      defineIndex(section: section);
  
      notifyListeners();
    }
  
  
    void saveEditing() async{
      bool valid = true;
      for(final section in _editingSections){
        if(!section.valid()) valid = false;
      }
      if(!valid) return;
      loading = true;
      notifyListeners();
  
  
      for(final section in _editingSections){
        await section.save();
      }
  
      for(final section in List.from(_sections)){
        if(!_editingSections.any((s) =&gt; s.id == section.id)){
          await section.delete();
        }
      }
  
      loading = false;
      editing = false;
      notifyListeners();
    }
  
    void discardEditing(){
      editing = false;
      notifyListeners();
    }
  
    void removeSection(Section section){
      _editingSections.remove(section);
      notifyListeners();
    }
  
    void onMoveUp(Section section){
      int index = _editingSections.indexOf(section);
  
      if(index != 0) {
        _editingSections.remove(section);
        _editingSections.insert(index - 1, section);
        index = _editingSections.indexOf(section);
      }
      notifyListeners();
    }
  
    HomeManager clone(){
      return HomeManager(
        images: List.from(images),
  
      );
    }
  
  
  
    void onMoveDown(Section section){
  
      index = _editingSections.indexOf(section);
      totalItems = _editingSections.length;
      if(index &lt; totalItems - 1){
        _editingSections.remove(section);
        _editingSections.insert(index + 1, section);
        index = _editingSections.indexOf(section);
      }else{
      }
      notifyListeners();
    }
  
    void defineIndex({Section section}){
      index = _editingSections.indexOf(section);
      totalItems = _editingSections.length;
      notifyListeners();
    }
  }
  </code></pre>
  <p>HomeScreen:</p>
  <pre><code>import 'package:carousel_pro/carousel_pro.dart';
  import 'package:flutter/material.dart';
  import 'package:provantagens_app/commom/custom_drawer.dart';
  import 'package:provantagens_app/commom/custom_icons_icons.dart';
  import 'package:provantagens_app/models/home_manager.dart';
  import 'package:provantagens_app/models/section.dart';
  import 'package:provantagens_app/screens/home/components/home_carousel.dart';
  import 'package:provantagens_app/screens/home/components/menu_icon_tile.dart';
  import 'package:provider/provider.dart';
  import 'package:url_launcher/url_launcher.dart';
  
  
  // ignore: must_be_immutable
  class HomeScreen extends StatelessWidget {
  
    HomeManager homeManager;
    Section section;
    List&lt;Widget&gt; get children =&gt; null;
    String videoUrl = 'https://www.youtube.com/watch?v=VFnDo3JUzjs';
    int index;
    var _tapPosition;
  
  
    @override
    Widget build(BuildContext context) {
      return Container(
        decoration: BoxDecoration(
            gradient: LinearGradient(colors: const [
              Colors.white,
              Colors.white,
            ], begin: Alignment.topCenter, end: Alignment.bottomCenter)),
        child: Scaffold(
            backgroundColor: Colors.transparent,
            drawer: CustomDrawer(),
            appBar: AppBar(
              backgroundColor: Colors.transparent,
              iconTheme: IconThemeData(color: Colors.black),
              title: Text('Página inicial', style: TextStyle(color: Color.fromARGB(255, 30, 158, 8))),
              centerTitle: true,
              actions: &lt;Widget&gt;[
                Divider(),
              ],
            ),
            body: Consumer&lt;HomeManager&gt;(
              builder: (_, homeManager, __){
                return ListView(children: &lt;Widget&gt;[
                  AspectRatio(
                    aspectRatio: 1,
                    child:HomeCarousel(homeManager),
                  ),
                  Column(
                    children: &lt;Widget&gt;[
                      Container(
                        height: 50,
                      ),
                      Divider(
                        color: Colors.black,
                      ),
                      Row(
                        mainAxisAlignment: MainAxisAlignment.spaceAround,
                        children: [
                          Padding(
                            padding: const EdgeInsets.only(left:12.0),
                            child: MenuIconTile(title: 'Parceiros', iconData: Icons.apartment, page: 1,),
                          ),
                          Padding(
                            padding: const EdgeInsets.only(left:7.0),
                            child: MenuIconTile(title: 'Beneficios', iconData: Icons.card_giftcard, page: 2,),
                          ),
                          Padding(
                            padding: const EdgeInsets.only(right:3.0),
                            child: MenuIconTile(title: 'Suporte', iconData: Icons.help_outline, page: 6,),
                          ),
                        ],
                      ),
                      Row(
                        mainAxisAlignment: MainAxisAlignment.spaceAround,
                        children: [
                          MenuIconTile(iconData: Icons.assignment,
                              title: 'Dados pessoais',
                              page: 3)
                          ,
                          MenuIconTile(iconData: Icons.credit_card_outlined,
                              title: 'Meu cartão',
                              page: 4)
                          ,
                          MenuIconTile(iconData: Icons.account_balance_wallet_outlined,
                            title: 'Pagamento',
                            page: 5,)
                          ,
                        ],
                      ),
                      Divider(
                        color: Colors.black,
                      ),
                      Container(
                        height: 50,
                      ),
                      Consumer&lt;HomeManager&gt;(
                        builder: (_, sec, __){
                          return RaisedButton(
                            child: Text('Teste'),
                            onPressed: (){
                              Navigator.of(context)
                                  .pushReplacementNamed('/teste',
                                  arguments: sec);
                            },
                          );
                        },
                      ),
                      Text('Saiba onde usar o seu', style: TextStyle(color: Colors.black, fontSize: 20),),
                      Text('Cartão Pró Vantagens', style: TextStyle(color: Color.fromARGB(255, 30, 158, 8), fontSize: 30),),
                      AspectRatio(
                        aspectRatio: 1,
                        child: Image.network(
                          'https://static.wixstatic.com/media/d170e1_80b5f6510f5841c19046f1ed5bca71e4~mv2.png/v1/fill/w_745,h_595,al_c,q_90,usm_0.66_1.00_0.01/Arte_Cart%C3%83%C2%B5es.webp',
                          fit: BoxFit.fill,
                        ),
                      ),
                      Divider(),
                      Container(
                        height: 150,
                        child: Row(
                          children: [
                            AspectRatio(
                              aspectRatio: 1,
                              child: Image.network(
                                'https://static.wixstatic.com/media/d170e1_486dd638987b4ef48d12a4bafee20e80~mv2.png/v1/fill/w_684,h_547,al_c,q_90,usm_0.66_1.00_0.01/Arte_Cart%C3%83%C2%B5es_2.webp',
                                fit: BoxFit.fill,
                              ),
                            ),
                            Padding(
                              padding: const EdgeInsets.only(left:20.0),
                              child: RichText(
                                text: TextSpan(children: &lt;TextSpan&gt;[
                                  TextSpan(
                                    text: 'Adquira já o seu',
                                    style: TextStyle(
                                      fontSize: 20.0,
                                      fontWeight: FontWeight.bold,
                                      color: Colors.black,
                                    ),
                                  ),
                                  TextSpan(
                                    text: '\n\CARTÃO PRÓ VANTAGENS',
                                    style: TextStyle(
                                        fontSize: 15.0,
                                        fontWeight: FontWeight.bold,
                                        color: Color.fromARGB(255, 30, 158, 8)),
                                  ),
                                ]),
                              ),
                            ),
                          ],
                        ),
                      ),
                      Divider(),
                      tableBeneficios(),
                      Divider(),
                      Padding(
                        padding: const EdgeInsets.all(16.0),
                        child: Column(
                          children: [
                            Text(
                                'O cartão Pró-Vantagens é sediado na cidade de Hortolândia/SP e já está no mercado há mais de 3 anos. Somos um time de profissionais apaixonados por gestão de benefícios e empenhados em gerar o máximo de valor para os conveniados.'),
                            FlatButton(
                                onPressed: () {
                                  launch(
                                      'https://www.youtube.com/watch?v=VFnDo3JUzjs');
                                },
                                child: Text('SAIBA MAIS')),
                          ],
                        ),
                      ),
                      Container(
                        color: Color.fromARGB(255, 105, 190, 90),
                        child: Column(
                          children: &lt;Widget&gt;[
                            Row(
                              children: [
                                Padding(
                                  padding: const EdgeInsets.all(16),
                                  child: Text(
                                    '©  2020 todos os direitos reservados a Cartão Pró Vantagens.',
                                    style: TextStyle(fontSize: 10),
                                  ),
                                )
                              ],
                            ),
                            Divider(),
                            Row(
                              children: [
                                Padding(
                                  padding: const EdgeInsets.all(16),
                                  child: Text(
                                    'Rua Luís Camilo de Camargo, 175 -\n\Centro, Hortolândia (piso superior)',
                                    style: TextStyle(fontSize: 10),
                                  ),
                                ),
                                Padding(
                                  padding: const EdgeInsets.only(left: 16),
                                  child: IconButton(
                                    icon: Icon(CustomIcons.facebook),
                                    color: Colors.black,
                                    onPressed: () {
                                      launch(
                                          'https://www.facebook.com/provantagens/');
                                    },
                                  ),
                                ),
                                Padding(
                                  padding: const EdgeInsets.only(left: 16),
                                  child: IconButton(
                                    icon: Icon(CustomIcons.instagram),
                                    color: Colors.black,
                                    onPressed: () {
                                      launch(
                                          'https://www.instagram.com/cartaoprovantagens/');
                                    },
                                  ),
                                ),
                              ],
                            ),
                          ],
                        ),
                      )
                    ],
                  ),
                ]);
              },
            )
            ),
  
      );
    }
  
    tableBeneficios() {
      return Table(
        defaultColumnWidth: FlexColumnWidth(120.0),
        border: TableBorder(
          horizontalInside: BorderSide(
            color: Colors.black,
            style: BorderStyle.solid,
            width: 1.0,
          ),
          verticalInside: BorderSide(
            color: Colors.black,
            style: BorderStyle.solid,
            width: 1.0,
          ),
        ),
        children: [
          _criarTituloTable(&quot;,Plus, Premium&quot;),
          _criarLinhaTable(&quot;Seguro de vida\n\(Morte Acidental),X,X&quot;),
          _criarLinhaTable(&quot;Seguro de Vida\n\(Qualquer natureza),,X&quot;),
          _criarLinhaTable(&quot;Invalidez Total e Parcial,X,X&quot;),
          _criarLinhaTable(&quot;Assistência Residencial,X,X&quot;),
          _criarLinhaTable(&quot;Assistência Funeral,X,X&quot;),
          _criarLinhaTable(&quot;Assistência Pet,X,X&quot;),
          _criarLinhaTable(&quot;Assistência Natalidade,X,X&quot;),
          _criarLinhaTable(&quot;Assistência Eletroassist,X,X&quot;),
          _criarLinhaTable(&quot;Assistência Alimentação,X,X&quot;),
          _criarLinhaTable(&quot;Descontos em Parceiros,X,X&quot;),
        ],
      );
    }
  
    _criarLinhaTable(String listaNomes) {
      return TableRow(
        children: listaNomes.split(',').map((name) {
          return Container(
            alignment: Alignment.center,
            child: RichText(
              text: TextSpan(children: &lt;TextSpan&gt;[
                TextSpan(
                  text: name != &quot;X&quot; ? '' : 'X',
                  style: TextStyle(
                    fontSize: 20.0,
                    fontWeight: FontWeight.bold,
                    color: Colors.black,
                  ),
                ),
                TextSpan(
                  text: name != 'X' ? name : '',
                  style: TextStyle(
                      fontSize: 10.0,
                      fontWeight: FontWeight.bold,
                      color: Color.fromARGB(255, 30, 158, 8)),
                ),
              ]),
            ),
            padding: EdgeInsets.all(8.0),
          );
        }).toList(),
      );
    }
  
    _criarTituloTable(String listaNomes) {
      return TableRow(
        children: listaNomes.split(',').map((name) {
          return Container(
            alignment: Alignment.center,
            child: RichText(
              text: TextSpan(children: &lt;TextSpan&gt;[
                TextSpan(
                  text: name == &quot;&quot; ? '' : 'Plano ',
                  style: TextStyle(
                    fontSize: 15.0,
                    fontWeight: FontWeight.bold,
                    color: Colors.black,
                  ),
                ),
                TextSpan(
                  text: name,
                  style: TextStyle(
                      fontSize: 15.0,
                      fontWeight: FontWeight.bold,
                      color: Color.fromARGB(255, 30, 158, 8)),
                ),
              ]),
            ),
            padding: EdgeInsets.all(8.0),
          );
        }).toList(),
      );
    }
    void _storePosition(TapDownDetails details) {
      _tapPosition = details.globalPosition;
    }
  }
  </code></pre>