v1.0.4
flutter_duration_picker
Um widget para escolher durações, inspirado no Seletor de Tempo do Material.
54Curtidas 40Downloads em 30 dias40Pontos Pub
Plataformas indisponíveis
Um widget do Flutter para permitir que um usuário selecione uma duração (por exemplo, 5 minutos, 1h 30min, etc)
{"sdk":"flutter"}{"sdk":"flutter"}Texto original em inglês. Visite o GitHub para a versão atual.
A little widget for picking durations. Heavily inspired from the Material Design time picker widget.
This repo is unmaintained, please check out the fork here: https://github.com/juliansteenbakker/duration_picker
https://raw.githubusercontent.com/cdharris/flutter_duration_picker/master/example.gifdependencies:
flutter_duration_picker: "^1.0.0"
import 'package:flutter/material.dart';
import 'package:flutter_duration_picker/flutter_duration_picker.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Duration Picker Demo',
theme: new ThemeData(
primarySwatch: Colors.blue,
),
home: new MyHomePage(title: 'Duration Picker Demo'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
Duration _duration = Duration(hours: 0, minutes: 0);
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text(widget.title),
),
body: new Center(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Expanded(
// Use it from the context of a stateful widget, passing in
// and saving the duration as a state variable.
child: DurationPicker(
duration: _duration,
onChange: (val) {
this.setState(() => _duration = val);
},
snapToMins: 5.0,
))
],
),
),
floatingActionButton: Builder(
builder: (BuildContext context) => new FloatingActionButton(
onPressed: () async {
// Use it as a dialog, passing in an optional initial time
// and returning a promise that resolves to the duration
// chosen when the dialog is accepted. Null when cancelled.
Duration resultingDuration = await showDurationPicker(
context: context,
initialTime: new Duration(minutes: 30),
);
Scaffold.of(context).showSnackBar(new SnackBar(
content: new Text("Chose duration: $resultingDuration")));
},
tooltip: 'Popup Duration Picker',
child: new Icon(Icons.add),
)),
);
}
}