使用分隔符的颤振组列表视图
发布时间: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,);
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

