flutter_stretchable_widgets

pub package

Lots of interesting and useful widgets, such as picker or expandable components.

Demonstrations

Please run example/lib/main.dart for more demonstrations

1. StretchablePanelWidget
import 'package:flutter_stretchable_widgets/flutter_stretchable_widgets.dart';

...
@override
Widget build(BuildContext context) {
    return Stack(
      children: [
        /// the left top one
        Positioned(
          left: 0,
          right: 0,
          top: 80,
          child: StretchablePanelWidget(
            triggerWidget: const Icon(Icons.add),
            stretchWidget: Text('Hello world', style: TextStyle(color: Colors.grey.withAlpha(128))),
          ),
        ),

        /// the right top one
        Positioned(
          left: 0,
          right: 0,
          top: 80,
          child: StretchablePanelWidget(
            widgetsBuilder: (context, state) {
              return state.isShowingTriggeredWidget ? const Icon(Icons.add) : const Text('Hello world');
            },
          ),
        ),
      ],
    );
}
...
2. TimeRangePickerView
import 'package:flutter_stretchable_widgets/flutter_stretchable_widgets.dart';

...
void onPressEvent() {
    /// Show the time rage picker
    TimeRangePickerView.show(
      context,
      onChange: (startDateTime, endDateTime) {
        print('ON CHANGE: startDateTime: $startDateTime, endDateTime: $endDateTime');
      },
      onConfirm: (startDateTime, endDateTime) {
        print('ON CONFIRM: startDateTime: $startDateTime, endDateTime: $endDateTime');
      },
    );
}
...

Features and bugs

Please feel free to: request new features and bugs at the issue tracker