Search packages, repositories and app categories

Package detailsv0.3.4

timeline_editor

A flutter wiidget to help you manage timelines like video timeline with tracks editable or not. with move, actions...

30-day downloads
47
Likes
41
Pub points
30

Install package

flutter pub add timeline_editor

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

A Flutter widget designed to manage timelines similar to video editing interfaces, supporting multiple tracks that can be editable or locked. It enables intuitive interactions such as moving, adding, and managing timeline actions. Ideal for applications requiring visual timeline manipulation with track-level control. The package is built for multimedia editing workflows and integrates smoothly into Flutter apps. It supports dynamic track management and user-driven timeline operations.

Use cases

  • Video editing interfaces
  • Audio timeline management
  • Interactive presentation tools
  • Animation sequence editors
  • Educational timeline builders
  • Multimedia project planning

Key features

  • Editable and non-editable tracks
  • Drag-and-drop timeline movement
  • Track-based timeline organization
  • Support for timeline actions
  • Customizable timeline UI
  • Real-time timeline updates

Suitable for

  • Developers building media editing apps
  • Educators creating interactive timelines
  • App creators needing timeline visualization
  • Teams working on creative content platforms
  • Users requiring precise timeline control

Considerations

  • Requires careful state management
  • May need performance optimization for long timelines
  • Limited platform-specific integration
  • Best suited for medium-complexity timelines
  • Depends on external repository for updates
  • No built-in export functionality

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

timeline_editor

Early version of a timeline editor. Support:

  • Move of element
  • Context menu
  • Zoom of timeline
  • Progress indicator
  • track boxes
  • continuous tracks
  • scrub

Usage

Installation

Add timeline_editor as a dependency in your pubspec.yaml file (what?).

Import

Import timeline_editor:

import 'package:timeline_editor/timeline_editor.dart';
Migrate from V2 to V3

We now use Duration instead of seconds. To migrate you can use the helper functions to transform your seconds to Duration:

Duration durationFromSeconds(double seconds)
double durationToSeconds(Duration duration)
widgets

See example


TimelineEditor(
                  positionStream: positionStream,
                  onPositionTap: (s) => position = s,
                  countTracks: 2,
                  trackBuilder: (track, pps, duration) => track == 1
                      ? TimelineEditorTrack(
                          defaultColor: Colors.green[700],
                          boxes: [
                            TimelineEditorBox(box1Start, 100,
                                onMoved: updateBox1,
                                color: Colors.blue,
                                onMovedEnd: () => print('end moved')),
                            TimelineEditorBox(157, 80),
                          ],
                          pixelsPerSeconds: pps,
                          duration: duration,
                        )
                      : TimelineEditorTrack.fromContinuous(
                          continuousBoxes:[
                            TimelineEditorContinuousBox(
                                Duration.zero,
                                color: Colors.deepOrange,
                                child: const Image(image: const AssetImage('assets/image2.jpg')),
                            ),
                            TimelineEditorContinuousBox(
                                box2Start,
                                menuEntries: [
                                PopupMenuItem<String>(child: Text('Delete'), value: 'deleted')
                                ],
                                onMoved: updateBox2,
                                onSelectedMenuItem: (v) {
                                print('Selected: $v');
                                setState(() {
                                    deleted = true;
                                });
                                },
                                onTap: (start, duration) =>
                                    print('tapped for $start to ${start + duration}'),
                                color: Colors.black,
                                child: const Image(image: const AssetImage('assets/image.jpg')),
                            ),
                            ],
                          pixelsPerSeconds: pps,
                          duration: duration,
                        ),
                  duration: Duration(seconds: 300),
                ))

TimelineEditor

Main widget used to hold your tracks, display position and time

TimelineEditorTrack

A provided track to use with the TimelineEditor track builder (you can use your own)

It can either hold simple TimelineEditorBox with a start and an end

or TimelineEditorTrack.fromContinuous with TimelineEditorContinuousBox to have a conitunuous track where you only set start time and duration will be calculated so the box go up to the next box

Example

/example

Categories

Source repository

Projects using this package

No data available yet.