使用分隔符的颤振组列表视图
发布时间:2020-12-14 14:55:21 所属栏目:百科 来源:网络整理
导读:我正在寻找一些指导用分隔符创建列表视图.例如,我想从按日期分组的数据库中获取消息,并按日期将消息与某些图形或行等分开……然后将消息放在分隔符下.尝试这一点,在任何指导或推动正确的方向,将不胜感激. 解决方法 我为设计的丑陋而道歉,但为了向您展示,您可
我正在寻找一些指导用分隔符创建列表视图.例如,我想从按日期分组的数据库中获取消息,并按日期将消息与某些图形或行等分开……然后将消息放在分隔符下.尝试这一点,在任何指导或推动正确的方向,将不胜感激.
解决方法
我为设计的丑陋而道歉,但为了向您展示,您可以构建自己想要的设计,这是一个简单的例子:
import "package:flutter/material.dart"; import 'package:meta/meta.dart'; class Test extends StatefulWidget { @override _TestState createState() => new _TestState(); } class _TestState extends State<Test> { @override Widget build(BuildContext context) { return new Scaffold( appBar: new AppBar( title: new Text("Test"),),body: new ListView.builder( // itemCount: myData.lenght(),itemCount: 20,itemBuilder: (BuildContext context,int index) { //sort my data by timestamp before building return new CustomWidget(date: "Convert my time stamp to date",content: "My Awesome Content",trailingIconOne: new Icon(Icons.share,color: Colors.blueAccent,trailingIconTwo: new Icon( Icons.favorite,color: Colors.redAccent,); }),); } } class CustomWidget extends StatelessWidget { String date; String content; Icon trailingIconOne; Icon trailingIconTwo; CustomWidget( {@required this.date,@required this.content,@required this.trailingIconOne,@required this.trailingIconTwo}); @override Widget build(BuildContext context) { return new Container( decoration: new BoxDecoration( border: new Border.all(color: Colors.grey[500]) ),child: new Column( children: <Widget>[ new Container (child: new Text(date),color: Colors.yellow[200],new Container(height: 15.0,new Text(content),new Row( mainAxisAlignment: MainAxisAlignment.end,children: <Widget>[ new IconButton(icon: trailingIconOne,onPressed: () {}),new Container(width: 10.0,new IconButton(icon: trailingIconTwo,onPressed: () {}) ],) ],); } } 为了更好的设计,您可以摆脱边框并使用分隔符: return new Container( child: new Column( children: <Widget>[ new Column (children: <Widget>[ new Container (child: new Text(date),new Row( mainAxisAlignment: MainAxisAlignment.end,children: <Widget>[ new IconButton(icon: trailingIconOne,],new Divider(height: 15.0,color: Colors.red, 在我看来,更好的视觉解决方案是使用卡而不是容器, return new Card( child: new Column( children: <Widget>[ new Column (children: <Widget>[ new Container (child: new Text(date),// new Divider(height: 15.0,); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |