我试图在每个ListTile之间构建一个带有分隔符的ListView.我看到有一个静态方法可以做到这一点叫做divideTiles(),但我不明白如何使用它..这个函数的使用方式/位置是什么?
我的代码是一个简单的ListView,ListTiles作为子代.
分隔线没有按照我的需要进行调整,列小部件中的所有内容都无法设置垂直线。
Container(
decoration: BoxDecoration(color: Colors.grey[300]),
child:
Row(
mainAxisAlignment: MainAxisAlignment.start,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Expanded(child: TextFormField(
style: new TextStyle(color: Colors.grey),
decoration: InputDecoration(
border: InputBorder.none,
prefixIcon: Icon(Icons.search,color: Colors.grey,size: 30.0,),
hintStyle: TextStyle(color: Colors.grey,fontSize: 18.0),
hintText: 'Search',
),),),
IconButton(onPressed:(){},icon: Image.asset('assets/images/grid.png',fit: BoxFit.contain ,),),
Container(decoration: BoxDecoration(color: Colors.grey),width: 5.0,child: Text(''),),
IconButton(onPressed:(){},icon: Image.asset('assets/images/list.png',fit: BoxFit.contain ,),),
],
)),
Divider(color: Colors.grey,),
Run Code Online (Sandbox Code Playgroud)
得到这个
我正在寻找一些指导用分隔符创建列表视图.例如,我想从按日期分组的数据库中获取消息,并按日期将消息与某些图形或行等分开......然后将消息放在分隔符下.尝试这一点,在任何指导或推动正确的方向,将不胜感激.
在使用ListView.Builder创建列表时,如何在最后一项中隐藏分隔符?
为每个项添加分隔符相当容易,但是在列表中的最后一项上解除分隔符的逻辑是什么?
没有具体的stackoverflow问题以及实现此任务的具体示例.
Widget build(BuildContext context) {
return
ListView.builder(
shrinkWrap: true,
physics: ScrollPhysics(),
itemCount: OffersList.length,
itemBuilder: (context, index) {
Offer item = OffersList[index];
return ListItem(context, item);
},
);
}
Widget ListItem(BuildContext context, Offer item) {
if ( index == OffersList.length - 1) {
dividerChecker = EmptyContainer();
} else {
dividerChecker = Divider();
}
return Column(
children: <Widget>[
OfferListItem(
offerData: item,
status: status,
userType: userType,
),
dividerChecker,
],
);
Run Code Online (Sandbox Code Playgroud)
}
解决方案如建议:
使用ListView.separator而不是ListView.Builder:
ListView.separated(
separatorBuilder: (BuildContext context, int index) => new Divider(), …Run Code Online (Sandbox Code Playgroud)