Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 建筑生成器(脏)引发了以下RangeError:_Firebase_Flutter_Dart - Fatal编程技术网

Firebase 建筑生成器(脏)引发了以下RangeError:

Firebase 建筑生成器(脏)引发了以下RangeError:,firebase,flutter,dart,Firebase,Flutter,Dart,背景: 我正在尝试创建一个带有flatter的动态滑块,它将获得Firebase url,用于形成漫画的图像,并将其放入旋转木马,我处理了空返回和空返回,但它一直在我的应用程序中显示无效索引的错误 错误: ════════ Exception caught by widgets library ═══════════════════════════════════════════════════════ The following RangeError was thrown building B

背景:

我正在尝试创建一个带有flatter的动态滑块,它将获得Firebase url,用于形成漫画的图像,并将其放入
旋转木马
,我处理了空返回和空返回,但它一直在我的应用程序中显示无效索引的错误

错误:

════════ Exception caught by widgets library ═══════════════════════════════════════════════════════
The following RangeError was thrown building Builder(dirty):
RangeError (index): Invalid value: Valid value range is empty: 0

The relevant error-causing widget was: 
  Builder file:///Users/murilopazzini/Documents/Projs/SchoolsOut_Dev/schools_out/lib/components/hqSlider.dart:55:24
When the exception was thrown, this was the stack: 
#0      List.[] (dart:core-patch/growable_array.dart:149:60)
#1      _hqSliderState.build.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:schools_out/components/hqSlider.dart:72:61)
#2      Builder.build (package:flutter/src/widgets/basic.dart:6757:41)
#3      StatelessElement.build (package:flutter/src/widgets/framework.dart:4291:28)
#4      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4223:15)
...
════════════════════════════════════════════════════════════════════════════════════════════════════
════════ widgets库捕获到异常═══════════════════════════════════════════════════════
建筑生成器(脏)引发了以下RangeError:
RangeError(索引):无效值:有效值范围为空:0
导致错误的相关小部件是:
建设者file:///Users/murilopazzini/Documents/Projs/SchoolsOut_Dev/schools_out/lib/components/hqSlider.dart:55:24
引发异常时,这是堆栈:
#0列表。[](dart:core patch/Growtable_阵列。dart:149:60)
#1_hqSliderState.构建。。。(包装:学校/部件/总部滑道.省道:72:61)
#2 Builder.build(包:flatter/src/widgets/basic.dart:6757:41)
#3.statelement.build(包:flatter/src/widgets/framework.dart:4291:28)
#4 ComponentElement.performRebuild(包:flatter/src/widgets/framework.dart:4223:15)
...
════════════════════════════════════════════════════════════════════════════════════════════════════
霍姆·达特

import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:schools_out/pages/comicsPage.dart';
import 'package:schools_out/components/hqSlider.dart';
import 'package:schools_out/entities/comics.dart';
import 'package:schools_out/entities/comicsPage.dart';

class Homepage extends StatefulWidget {
  @override
  _HomepageState createState() => _HomepageState();
}

class _HomepageState extends State<Homepage>
    with SingleTickerProviderStateMixin {
  Animation animation;
  AnimationController animationController;

  @override
  void initState() {
    // super.initState();
    animationController =
        new AnimationController(duration: Duration(seconds: 200), vsync: this);
    animation =
        IntTween(begin: 0, end: photos.length - 1).animate(animationController)
          ..addListener(() {
            setState(() {
              index = animation.value;
            });
          });

    animationController.repeat(period: Duration(seconds: 20));
  }

  int index = 0;
  List<String> photos = [
    'https://i.ibb.co/kc1mjTW/abduc-a-o-55-1.png',
    'https://i.ibb.co/nmFdgs8/abduc-a-o-55-2.jpg'
  ];

  @override
  void dispose() {
    // TODO: implement dispose
    super.dispose();
    animationController.dispose();
  }

  @override
  Widget build(BuildContext context) {
    ComicsList(Comics clist) => InkWell(
        onTap: () {
          Navigator.push(
            context,
            MaterialPageRoute(
                builder: (context) => ComicsReadingPage(
                      comics: clist,
                    )),
          );
        },
        child: PopularHq(
          image: clist.pages[0].image,
          name: clist.name,
        ));
    bestm(BMovies movie) => HqWidget(
          image: movie.Image,
        );

    final comics_scroll = Container(
      child: SingleChildScrollView(
        scrollDirection: Axis.horizontal,
        physics: BouncingScrollPhysics(),
        child: Row(
          children: comicsList.map((cl) => ComicsList(cl)).toList(),
        ),
      ),
    );

    return Scaffold(
        backgroundColor: Colors.white,
        appBar: AppBar(
          iconTheme: new IconThemeData(color: Colors.blueGrey[600]),
          centerTitle: true,
          title: Text(
            "Schools Out",
            style: TextStyle(color: Colors.blueGrey[600], fontSize: 28),
          ),
          backgroundColor: Colors.white,
          //    leading:Icon(Icons.notifications,color: Colors.red,) ,
          //  toolbarOpacity: 0,
        ),
        drawer: new Drawer(
          child: ListView(
            children: <Widget>[
              new UserAccountsDrawerHeader(
                accountName: new Text('Test User'),
                accountEmail: new Text('testemail@test.com'),
                currentAccountPicture: new CircleAvatar(
                  backgroundImage: new NetworkImage('http://i.pravatar.cc/300'),
                ),
              ),
              new ListTile(
                title: new Text('Test Navigation'),
                onTap: () {
                  Navigator.of(context).pop();
                  Navigator.push(
                      context,
                      new MaterialPageRoute(
                          builder: (BuildContext context) => new Homepage()));
                },
              ),
            ],
          ),
        ),
        body: SingleChildScrollView(
          physics: BouncingScrollPhysics(),
          child: Column(
            children: <Widget>[
              Container(
                color: Colors.white,
                child: Column(
                  children: <Widget>[
                    ImageData(photos[index]),

                    //  TopMovies()
                  ],
                ),
              ),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: Row(
                  // crossAxisAlignment: CrossAxisAlignment.start,
                  children: <Widget>[
                    Text(
                      "HQ's",
                      style: TextStyle(
                          fontWeight: FontWeight.w900,
                          fontSize: 16,
                          color: Colors.blueGrey),
                    ),
                    SizedBox(
                      width: 180,
                    ),
                  ],
                ),
              ),
              hqSlider(),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: Row(
                  // crossAxisAlignment: CrossAxisAlignment.start,
                  children: <Widget>[
                    Text(
                      "Tirinhas",
                      style: TextStyle(
                          fontWeight: FontWeight.w900,
                          fontSize: 16,
                          color: Colors.blueGrey),
                    ),
                    SizedBox(
                      width: MediaQuery.of(context).size.width * 0.65,
                    ),
                    Text(
                      "See All",
                      style: TextStyle(
                          fontWeight: FontWeight.w900,
                          fontSize: 16,
                          color: Colors.blueGrey),
                    )
                  ],
                ),
              ),
              comics_scroll
            ],
          ),
        ));
  }
}

class ImageData extends StatelessWidget {
  String image;

  ImageData(this.image);

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Container(
      height: 180,
      decoration: BoxDecoration(
          image: DecorationImage(
            image: NetworkImage(image),
            fit: BoxFit.cover,
          ),
          borderRadius: BorderRadius.circular(8.0)),
      child: Align(
        alignment: Alignment.bottomCenter,
      ),
    );
  }
}

class HqWidget extends StatelessWidget {
  final String image;

  HqWidget({Key key, this.image});

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Padding(
      padding: const EdgeInsets.all(8.0),
      child: ClipOval(
        child: Container(
          height: 60,
          width: 60,
          decoration: BoxDecoration(
              image: DecorationImage(
                image: NetworkImage(image),
                fit: BoxFit.cover,
              ),
              borderRadius: BorderRadius.circular(12.0),
              boxShadow: [
                BoxShadow(
                    offset: Offset(0.5, 1.0),
                    blurRadius: 5,
                    color: Colors.white)
              ]),
        ),
      ),
    );
  }
}

////////////////////////////////////////////

class PopularHq extends StatelessWidget {
  String image, name;

  PopularHq({this.image, this.name});

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(8.0),
      child: InkWell(
        child: Column(
          children: <Widget>[
            Container(
              height: 140,
              width: 100,
              decoration: BoxDecoration(
                  image: DecorationImage(
                    image: NetworkImage(image),
                    fit: BoxFit.cover,
                  ),
                  borderRadius: BorderRadius.circular(6.0),
                  boxShadow: [
                    BoxShadow(
                        offset: Offset(0.5, 1.0),
                        blurRadius: 5,
                        color: Colors.white)
                  ]),
            ),
            Container(
              //width: 100,
              //height: 40,
              child: Text(
                name,
                textAlign: TextAlign.center,
                style: TextStyle(
                    fontSize: 15,
                    fontWeight: FontWeight.w600,
                    color: Colors.white),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

////////////////////////////////////////////



final List<Comics> comicsList = [
  Comics('Teste', 1, [
    ComicsPage('https://i.ibb.co/nmFdgs8/abduc-a-o-55-2.jpg', 1),
    ComicsPage('https://i.ibb.co/kc1mjTW/abduc-a-o-55-1.png', 2),
  ]),
  Comics('Teste 2', 2, [
    ComicsPage('https://i.ibb.co/nmFdgs8/abduc-a-o-55-2.jpg', 1),
    ComicsPage('https://i.ibb.co/kc1mjTW/abduc-a-o-55-1.png', 2),
  ]),
  Comics('Teste 3', 3, [
    ComicsPage('https://i.ibb.co/nmFdgs8/abduc-a-o-55-2.jpg', 1),
    ComicsPage('https://i.ibb.co/kc1mjTW/abduc-a-o-55-1.png', 2),
  ]),
];

class BMovies {
  String Image;
  int Boxc;

  BMovies(this.Image);
}
import'package:firebase_auth/firebase_auth.dart';
进口“包装:颤振/材料.省道”;
导入“包:cloud_firestore/cloud_firestore.dart”;
导入“package:schools_out/pages/ComicPage.dart”;
导入“包:学校/组件/总部滑道.省道”;
导入“package:schools_out/entities/comics.dart”;
导入“包:schools_out/entities/ComicPage.dart”;
类主页扩展了StatefulWidget{
@凌驾
_HomepageState createState()=>\u HomepageState();
}
类_HomepageState扩展状态
使用SingleTickerProviderStateMixin{
动画;
动画控制器;
@凌驾
void initState(){
//super.initState();
动画控制器=
新的AnimationController(持续时间:持续时间(秒数:200),vsync:this);
动画=
IntTween(开始:0,结束:photos.length-1)。动画(animationController)
…addListener(){
设置状态(){
索引=animation.value;
});
});
重复(周期:持续时间(秒:20));
}
int指数=0;
列出照片=[
'https://i.ibb.co/kc1mjTW/abduc-a-o-55-1.png',
'https://i.ibb.co/nmFdgs8/abduc-a-o-55-2.jpg'
];
@凌驾
无效处置(){
//TODO:实现dispose
super.dispose();
animationController.dispose();
}
@凌驾
小部件构建(构建上下文){
漫画列表(漫画客户端)=>InkWell(
onTap:(){
导航器。推(
上下文
材料路线(
生成器:(上下文)=>ComicReadingPage(
漫画:克莱斯特,
)),
);
},
儿童:PopularHq(
图像:clist.pages[0]。图像,
姓名:clist.name,
));
bestm(BMovies电影)=>HqWidget(
影像:电影,影像,
);
最终漫画卷=容器(
子:SingleChildScrollView(
滚动方向:轴水平,
物理:弹跳CrollPhysics(),
孩子:排(
子项:ComicList.map((cl)=>ComicList(cl)).toList(),
),
),
);
返回脚手架(
背景颜色:Colors.white,
appBar:appBar(
iconTheme:new IconThemeData(颜色:Colors.blueGrey[600]),
标题:对,
标题:正文(
“学校出局”,
样式:TextStyle(颜色:Colors.blueGrey[600],字体大小:28),
),
背景颜色:Colors.white,
//前导:图标(图标。通知,颜色:Colors.red,),
//不透明度:0,
),
抽屉:新抽屉(
子:ListView(
儿童:[
新用户帐户DrawerHeader(
accountName:新文本(“测试用户”),
accountEmail:新文本('testemail@test.com'),
currentAccountPicture:新CircleAvatar(
背景图片:新的网络图片('http://i.pravatar.cc/300'),
),
),
新ListTile(
标题:新文本(“测试导航”),
onTap:(){
Navigator.of(context.pop();
导航器。推(
上下文
新材料路线(
生成器:(BuildContext context)=>new Homepage());
},
),
],
),
),
正文:SingleChildScrollView(
物理:弹跳CrollPhysics(),
子:列(
儿童:[
容器(
颜色:颜色,白色,
子:列(
儿童:[
图像数据(照片[索引]),
//热门电影()
],
),
),
填充物(
填充:常数边集全部(8.0),
孩子:排(
//crossAxisAlignment:crossAxisAlignment.start,
儿童:[
正文(
“总部”,
样式:TextStyle(
fontWeight:fontWeight.w900,
尺寸:16,
颜色:颜色。蓝灰色),
),
大小盒子(
宽度:180,
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:schools_out/pages/comicsPage.dart';
import 'package:carousel_slider/carousel_slider.dart';
import 'package:schools_out/entities/comicsPage.dart';
import 'package:schools_out/entities/comics.dart';
import 'dart:async';

class hqSlider extends StatefulWidget {
  @override
  _hqSliderState createState() => _hqSliderState();
}

class _hqSliderState extends State<hqSlider> {
  Future getComics() async {
    var firestore = Firestore.instance;

    QuerySnapshot qn = await firestore.collection("comics").getDocuments();

    return qn.documents;
  }

  @override
  Widget build(BuildContext context) {
    List<Comics> hqList = new List<Comics>();

    return FutureBuilder(
      future: getComics(),
      builder: (_, snapshot) {
        if (snapshot.data == null) {
          return Center(
            child: Text("Loading ..."),
          );
        } else if(snapshot.data.length > 0){
          hqList.clear();
          List<ComicsPage> pagesForThisHq = new List<ComicsPage>();

          snapshot.data.forEach((element) {

            element.data['pages'].forEach((page) {
              pagesForThisHq.add(ComicsPage(page['image'].toString(), page['page']));
            });

            hqList.add(
                Comics(element.data['name'], element.data['edition'], pagesForThisHq));
            pagesForThisHq.clear();
          });

          return CarouselSlider(
              autoPlay: true,
              viewportFraction: 0.9,
              aspectRatio: 2.4,
              enlargeCenterPage: false,
              items: hqList.map((hq) {
                return Builder(
                  builder: (BuildContext context) {
                    return Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Container(
                        child: GestureDetector(onTap: () {
                          Navigator.push<Widget>(
                            context,
                            MaterialPageRoute(
                              builder: (context) => ComicsReadingPage(
                                comics: hq,
                              ),
                            ),
                          );
                        }),
                        decoration: BoxDecoration(
                            image: DecorationImage(
                                image: NetworkImage(hq.pages[0].image),
                                fit: BoxFit.cover),
                            borderRadius: BorderRadius.circular(12),
                            boxShadow: [
                              BoxShadow(
                                  offset: Offset(0.2, 1.0),
                                  blurRadius: 2,
                                  color: Colors.grey)
                            ]),
                      ),
                    );
                  },
                );
                //////
              }).toList());
        } else {
          return Center(
            child: Text("No Content ..."),
          );
        }
      },
    );
  }
}
import 'package:schools_out/entities/comicsPage.dart';

class Comics {
  List<ComicsPage> pages;
  String name;
  int edition;

  Comics(this.name, this.edition, this.pages);
}

class ComicsPage {
  String image;
  int page;

  ComicsPage(this.image, this.page);
}
pagesForThisHq.clear();