Flutter时间轴(timeline)

组件

在业务开发中经常会使用到timeline时间轴,来记录数据操作记录等,在这本人封装了一个相对较通用的时间轴组件。

示例

image-20211112143624153

参数

参数类型必填说明
timelineListList时间轴数据
lineColorColor时间轴轴线颜色
heightdouble时间轴右侧容器高度(默认80)
titleStyleTextStyle时间轴标题样式(已定义初始值 如无特殊样式无需传参)
subtitleStyleTextStyle时间轴副标题颜色 如果List数据不包含subtitle参数则不展示
descriptionStyleTextStyle时间轴描述样式
leftContentbool时候展示左侧时间 true-展示 false-不展示 默认true

timelineList

参数类型说明
titleString标题数据
subtitleString副标题数据
descriptionString描述(如果remark不为空不展示)
remarkString备注 展示成气泡形式
dayString左侧时间栏天 如 09-20
timeString左侧时间了时间 如 11:40

调用示例

import '@/timeline/timeline.dart';
final list = [
    {
      'day': '07-08',
      'time': '13:20',
      'remark': "备注:降价1000客户可考虑,辛苦再撮合备注:降价1000客户可考虑,辛苦再撮合备注:降价1000客户可考虑",
      'description': '',
      'subtitle': '齐本安(主播)',
      'title': "新建工单"
    },
    {
      'id': "2",
      'day': '07-08',
      'time': '13:20',
      'description': "备注:降价1000客户可考虑,辛苦再撮合备注:降价1000客户可考虑",
      'subtitle': '吴雄飞(销售专员)',
      'title': "联系客户"
    },
    {
      'id': "3",
      'day': '07-08',
      'time': '13:20',
      'description': "备注:降价1000客户可考虑,辛苦再撮合备注:降价1000客户可考虑,辛苦再撮合备注:降价1000客户可考虑,辛苦再撮合",
      'title': "新建工单"
    },
    {
      'id': "4",
      'day': '07-08',
      'time': '13:20',
      'description': "备注:降价1000客户可考虑,辛苦再撮合备注:降价1000客户可考虑,辛苦再撮合备注:降价1000客户可考虑,辛苦再撮合",
      'subtitle': '齐本安(主播)',
      'title': "新建工单"
    },
    {
      'id': "5",
      'day': '07-08',
      'time': '13:20',
      'description': "备注:降价1000客户可考虑",
      'subtitle': '吴雄飞(主播)',
      'title': "新建工单"
    }
  ];
TimelineComponent(
  timelineList: list,
  lineColor: WBColors.color_cccccc,
  leftContent: false,
  height: 80.0,
)

源码地址: https://github.com/gongchenghuigch/flutterComponent/tree/main/timeline

时光轴是一种将历史事件按时间线展示的方式。在Flutter中,可以通过使用ListView和Card来实现一个简单的时光轴。以下是一个示例: 1. 创建一个Flutter应用程序并打开main.dart文件。 2. 导入material.dart库并创建一个StatelessWidget。 ```dart import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Timeline App', home: TimelinePage(), ); } } ``` 3. 创建一个StatefulWidget并实现它的build方法。在build方法中,使用ListView和Card来展示历史事件。 ```dart class TimelinePage extends StatefulWidget { @override _TimelinePageState createState() => _TimelinePageState(); } class _TimelinePageState extends State<TimelinePage> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Timeline'), ), body: ListView( children: <Widget>[ _buildEventCard('Event 1', 'Description 1', 'date 1'), _buildEventCard('Event 2', 'Description 2', 'date 2'), _buildEventCard('Event 3', 'Description 3', 'date 3'), _buildEventCard('Event 4', 'Description 4', 'date 4'), _buildEventCard('Event 5', 'Description 5', 'date 5'), _buildEventCard('Event 6', 'Description 6', 'date 6'), _buildEventCard('Event 7', 'Description 7', 'date 7'), ], ), ); } Widget _buildEventCard(String title, String description, String date) { return Card( child: ListTile( title: Text(title), subtitle: Text(description), trailing: Text(date), ), ); } } ``` 4. 运行应用程序并查看时光轴。您可以根据需要添加更多事件卡片。 这是一个基本的时光轴实现。您可以根据需要定制卡片颜色、添加图像等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值