加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用分隔符的颤振组列表视图

发布时间:2020-12-14 14:55:21 所属栏目:百科 来源:网络整理
导读:我正在寻找一些指导用分隔符创建列表视图.例如,我想从按日期分组的数据库中获取消息,并按日期将消息与某些图形或行等分开……然后将消息放在分隔符下.尝试这一点,在任何指导或推动正确的方向,将不胜感激. 解决方法 我为设计的丑陋而道歉,但为了向您展示,您可
我正在寻找一些指导用分隔符创建列表视图.例如,我想从按日期分组的数据库中获取消息,并按日期将消息与某些图形或行等分开……然后将消息放在分隔符下.尝试这一点,在任何指导或推动正确的方向,将不胜感激.

解决方法

我为设计的丑陋而道歉,但为了向您展示,您可以构建自己想要的设计,这是一个简单的例子:

enter image description here

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,);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读