FLUTTER ECOSYSTEM

softmarshmallow/flutter-timeline

⌚️ Flutter 时间线

flutter-timeline 项目封面
Stars
396
Forks
47
最近推送(UTC)
2024年5月21日
项目状态
未归档
Universe GitHub avatar
GITHUB User

Universe ↗

#make #grida universe@grida.co

@gridaco
语言DartSwiftHTMLKotlinObjective-C

技术话题

此仓库发布的插件

使用的依赖

依赖清单 2 项
  • flutter{"sdk":"flutter"}
  • flutter_test开发依赖{"sdk":"flutter"}

原始 README

以下为英文项目原文快照,最新内容请访问 GitHub。

展开 / 收起项目 README

framework: flutter platform: Android, iOS, Web, macOS, Linux, Windows tags: flutter, timeline, flutter timeline, timeline tile title: flutter timeline

flutter_timeline https://img.shields.io/badge/pub-latest-brightgreen

logo

a fully customizable & general timeline widget, based on real-world application references

  • ✅ fully customizable indicator dot
  • ✅ support spacing between indicator dot and lines
  • ✅ support spacing between event (items) but leaving the line connected
  • ✅ uses custom paint, but yet, indicator and body are fully customizable.
  • ✅ 2 real-world demos
  • ✅ L2R support
  • ✅ anchor support
  • ✅ global offset support
  • ✅ item offset support
  • ✅ supported & used by enterprise, constantly updated, used on production application.

Installation

dependencies:
  flutter_timeline: latest

usage

simple

  TimelineEventDisplay get plainEventDisplay {
    return TimelineEventDisplay(
        child: TimelineEventCard(
          title: Text("just now"),
          content: Text("someone commented on your timeline ${DateTime.now()}"),
        ),
        indicator: TimelineDots.of(context).circleIcon);
  }

  List<TimelineEventDisplay> events;

  Widget _buildTimeline() {
    return TimelineTheme(
        data: TimelineThemeData(lineColor: Colors.blueAccent),
        child: Timeline(
          indicatorSize: 56,
          events: events,
        ));
  }

  void _addEvent() {
    setState(() {
      events.add(plainEventDisplay);
    });
  }

using offset

Widget _buildTimeline() {
  return Timeline(
      indicatorSize: 56,
      events: events,
      altOffset: Offset(0, -24) // set offset
  );
}

using anchor & offset

  TimelineEventDisplay get plainEventDisplay {
    return TimelineEventDisplay(
        anchor: IndicatorPosition.top,
        indicatorOffset: Offset(0, 24),
        child: TimelineEventCard(
          title: Text("multi\nline\ntitle\nawesome!"),
          content: Text("someone commented on your timeline ${DateTime.now()}"),
        ),
        indicator: randomIndicator);
  }

complex example

https://raw.githubusercontent.com/softmarshmallow/flutter-timeline/HEAD/docs/images/desk-ss-01.png

simple example (run it now!)

https://raw.githubusercontent.com/softmarshmallow/flutter-timeline/HEAD/docs/images/mac-ss.png https://raw.githubusercontent.com/softmarshmallow/flutter-timeline/HEAD/docs/images/mac-ss-2.png https://raw.githubusercontent.com/softmarshmallow/flutter-timeline/HEAD/docs/images/mac-ss-3.png

more documentation available at github

Sponsors

sponsored-by-grida

Also check out...

flutter_layouts

references

https://www.pinterest.com/official_softmarshmallow/flutter-timeline/