我有这个小部件树:
>>> import re
>>>
>>> fact_dic = {'': 1, 'K': 1000, 'M': 1000000}
>>>
>>> def GetFloatFromFactor( input ):
... m = re.search( r"^(\d+(?:\.\d*)?|\.\d+)([KM]?)$", input)
... if m != None:
... fval = float( m.group(1) ) * fact_dic[ m.group(2) ]
... return fval
... else:
... return "no match"
...
>>> GetFloatFromFactor( '3K' )
3000.0
>>> GetFloatFromFactor( '12.4M' )
12400000.0
>>> GetFloatFromFactor( '098.281' )
98.281
在Scaffold
AppBar
Column
Center
SingleChildScrollView
FutureBuilder
Container
Flex
direction: Axis.vertical,
children: <Widget>[
Row(),
.....
UserCommentsWidget(id)
]
中,我正在使用将来的构建器从Web服务加载数据并显示列表视图:
UserCommentsWidget
但是我得到了这个错误:
Widget build(BuildContext context) {
return FutureBuilder<UserCommentModel>(
future: _userCommentsFuture,
builder: (ctx, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Center(
child: CircularProgressIndicator(),
);
} else if (!snapshot.hasError && snapshot.hasData) {
return snapshot.data.data.list.length != 0
? Column(
children: <Widget>[
Row(),
Container(
ListView.builder(
itemCount: snapshot.data.list.length,
itemBuilder: (ctx, index) {
return
commentItems(snapshot.data.data.list[index]);
}),
)
],
)
我将 Listview 放入了 Expanded 中,但是遇到了同样的错误,如何用listview填充剩余空间?
答案 0 :(得分:0)
将ListView.builder
放在展开的位置,以便填充空间。
答案 1 :(得分:0)
我将小部件树更改为此:
Scaffold
AppBar
Column
Expanded
FutureBuilder
Container
Column
children: <Widget>[
Row(),
.....
Expanded
UserCommentsWidget(id)
]
现在一切都很好。谢谢大家
答案 2 :(得分:0)
在这种情况下,Flex和Expanded可以为您提供帮助。
Flex(
direction: Axis.vertical,
children: <Widget>[
Expanded(child: ListView.builder(//IMPLEMENT YOUR LIST//))
])