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]);
},
)
],
),
);
});
}
推荐阅读
- visual-studio - Xamarin Android 项目签名与 V2 签名(Visual Studio 2019 专业版)
- react-native - Visual Stuiod Code Intellisense 不适用于 React Native 别名
- scons - Python SCons 行动?
- java - 这两种创建对象的方式有区别吗
- java - Neo4J 使用哪种哈希算法?
- ios - 当帧长度改变时,WKWebview 重置缩放比例
- ios - 如何将 NSData 从 javascript 传递到 swift 5?
- wordpress - WordPress 联系表格 7 无需插件即可进入数据库
- javascript - 以编程方式打开 d3.js v4 可折叠树节点?
- c# - 如何将旧代码从不同的命名空间导入到我当前的项目中?