listview被SingleChildScrollView、c
2020-04-20 本文已影响0人
晓函
方案一:listView加上下面2个属性就解决了
//shrinkWrap和physics,在被Column或者SingleChildScrollView嵌套时候可以正常绘制
shrinkWrap: true,
physics:ClampingScrollPhysics(),
方案二:在Column里面等listview加上Expanded
Column(children:<Widget>[Container(),Expanded(child:ListView())]);
完整代码
Widget buildPage(BuildContext context){
widgetListviewFans(){
if(_listFans==null || _listFans.length==0)
return Center(child:(_loadTips==null||_loadTips.isEmpty)?Text(_defaultLoading):Text(_loadTips));
return ListView.builder(
scrollDirection: Axis.vertical,
itemCount: _listFans.length,
itemBuilder: (context,i){
return buildItem(context, _listFans[i]);
},
padding: EdgeInsets.fromLTRB(_blockMargin,5,_blockMargin,5),
//shrinkWrap和physics,在被Column或者SingleChildScrollView嵌套时候可以正常绘制
shrinkWrap: true,
physics:NeverScrollableScrollPhysics(),
);
}
widgetEasyRefresh(){
return
EasyRefresh(
child:SingleChildScrollView(
child:Column(children:<Widget>[
Container(child: Text('this test'), height: 20,width: 120,),
widgetListviewFans()
])
),
header:refreshHeader,
footer: refreshFooter,
onRefresh: () async{
_page=1;
setState(() {
_listFans = null;
});
getFansList();
},
onLoad: () async{
if(_hasNext)
{
_page++;
getFansList();
}else{
Toast.toast(context,msg: "没有更多啦");
}
},
);
}
return Container(
child: widgetEasyRefresh(),
color: Color(0xFFEEEEEE)
);
}
绘制EasyReresh+ListView的页面
@override
Widget build(BuildContext context){
//计算方块宽度
_blockWidth = MediaQuery.of(context).size.width-_blockMargin*2;
return Scaffold(
appBar: AppBar(title:Text("我的粉丝"),elevation: 0),
body: buildPage(context),
);
}
绘制Column+EasyReresh+ListView的页面
@override
Widget build(BuildContext context){
_mediaWidth = MediaQuery.of(context).size.width;
//计算方块宽度
_blockWidth = _mediaWidth-_blockMargin*2;
return Scaffold(
//appBar: AppBar(title:Text("我的粉丝"),elevation: 0),
body: Container(
child:Column(
children: <Widget>[
buildHead(context),
Expanded(child:buildBody(context))
],
),
)
);
}