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

如何在Flutter中显示Listview中的字符串列表

如何解决如何在Flutter中显示Listview中的字符串列表

我有一个字符串列表。我需要在界面中将它们显示为列表。

List<String> spec_list = urlremoved.split(",");

我只需要显示它们即可。但是它不起作用。请帮忙找出错误。 我已经附上了下面的代码

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:Flutter/material.dart';



class ItemView extends StatefulWidget {
  final String docID123;

  const ItemView({ this.docID123}) ;

  @override
  _ItemViewState createState() => _ItemViewState();
}
String name123;
class _ItemViewState extends State<ItemView> {
  @override
  //String docuID = Widget.documentid;
  
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Item Data'),),body: ListView(
        children: <Widget>[
          Text(widget.docID123),getItems(),],);
  }
}


Widget getItems(){
    return StreamBuilder(
      //1597917013710
      stream: Firestore.instance.collection('ads').document('1597917013710').snapshots(),builder: (context,snapshot){
        if (!snapshot.hasData) {
          //snapshot.data.toString();
          return new Text("Loading");
        }
        DocumentSnapshot dd = snapshot.data; 

        var userDocument = snapshot.data;
        //String myname = dd.data.toString();
        int len = dd.data.length;
        
        String jsonString = dd.data.toString();
        String start = "[";
        String end = "]";
        final startIndex = jsonString.indexOf(start);
        final endindex = jsonString.indexOf(end,startIndex + start.length);
        String next = jsonString.substring(startIndex + start.length,endindex);
        String imagelinkRemoved = jsonString.replaceAll(next,"");
        String urlremoved = imagelinkRemoved.replaceAll("urls: [],","").replaceAll("{","").replaceAll("}","");

        List<String> spec_list = urlremoved.split(",");
        int speclistlen = spec_list.length;
        
        return Container(
      child: Column(
        children: <Widget>[
          Text(spec_list[0]),ListView.builder(
            itemCount: speclistlen,itemBuilder: (context,index){
              return Text(spec_list[index]);
            },)
        ],);
      }
    );
}


Future getCatagory() async {
      var firestone = Firestore.instance;

      QuerySnapshot alldata = await firestone.collection("catagory_names/Vehicles").getDocuments();
      for(int i=0;i<alldata.documents.length;i++){
                        DocumentSnapshot snap = alldata.documents[i];
                        
                      }

      return  Text('12345');

    }

解决方法

仅当您的speclistlen为空时,才会发生这种情况。遵循上面的代码,似乎您遇到了未绑定高度异常。为避免这种情况,请在shrinkWrap: true,

中使用Listview.Builder
Widget getItems() {
  return StreamBuilder(
      //1597917013710
      stream: Stream.periodic(Duration(seconds: 2)),builder: (context,snapshot) {
        String urlremoved = "I,am,jits555";

        List<String> spec_list = urlremoved.split(",");
        int speclistlen = spec_list.length;

        return Container(
          child: Column(
            children: <Widget>[
              Text(spec_list[0]),ListView.builder(
                shrinkWrap: true,itemCount: speclistlen,itemBuilder: (context,index) {
                  return Text(spec_list[index]);
                },)
            ],),);
      });
} 

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