微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Flutter中实现可弃用小部件时出错

如何解决在Flutter中实现可弃用小部件时出错

我已经在Flutter应用程序中实现了dismissible小部件,以滑动并删除索引的项目。当我从列表中删除任何项目时,我在日志中得到以下错误

错误

RangeError(索引):无效值:不在包含范围0..48:49

这是已实现的代码

CODE

        SingleChildScrollView(

          child: Column(
            mainAxisAlignment: MainAxisAlignment.end,crossAxisAlignment: CrossAxisAlignment.start,children: [
            
              ListView.separated(
                separatorBuilder: (context,index){
                  return Divider();
                },controller: _scrollController,itemCount: noteItems,shrinkWrap: true,itemBuilder: (context,index) {
                  final item = firstdata[index];
                  String arr = firstdata[index]['created_at'];
                  var arr2 = arr.split('-');
                  var content = firstdata[index]['company_details']['logo_name'];
                  print('logo name check');
                  print(content);

                  return
                    dismissible(
                    direction: dismissDirection.endToStart,key: ObjectKey(item),ondismissed: (direction) {

                      deleteSingleNotifications(userid.toString(),firstdata[index]['id']);
                      setState(() {
                        firstdata.removeAt(index);
                      });


                    },background: Container(color: Colors.red,child: Center(child: Text("DELETE",style: TextStyle(fontSize:50,fontWeight: FontWeight.bold),)),),child: Padding(

                      padding: const EdgeInsets.fromLTRB(8.0,7.0,8.0,0.0),child: Column(
                        children: <Widget>[


                          firstdata[index]['status'] == "0"?
                      Container(
                      color:Colors.grey.shade200,child: ListTile(
                         

                          title:
                          Row(
                            children: [


                              Flexible(
                                child: firstdata[index]['title']!= null?AutoSizeText(
                                  firstdata[index]['title'],maxLines: 2,style: TextStyle(fontWeight: FontWeight.bold),) :Text(''),],)
                              :Container(
                            color: Colors.white,child: ListTile(
                             
                             

                              title:
                              Row(
                                children: [


                                  Flexible(
                                    child: firstdata[index]['title']!= null?AutoSizeText(
                                      firstdata[index]['title'],);

                },)

当我删除列表项后点击任何项时,都会出现以下错误

错误

方法'+'在null上被调用。接收者:null

我应该如何解决此类问题?

解决方法

我认为这是与您的Listview长度有关的问题。似乎您将其设置为49而不是48。请尝试以下操作:

    itemCount: noteItems - 1,

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。