better_analog_time_picker 0.0.2 copy "better_analog_time_picker: ^0.0.2" to clipboard
better_analog_time_picker: ^0.0.2 copied to clipboard

A better analog time picker

example/lib/main.dart

import 'package:analog_time_picker/better_analog_time_picker.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Time Picker Demo',
      home: const HomeScreen(),
    );
  }
}

/// Home Page
class HomeScreen extends StatefulWidget {
  const HomeScreen({super.key});

  @override
  State<HomeScreen> createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  static final _now = TimeOfDay.now();
  TimeOfDay _selectedTime = _now;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Time Picker Demo'),
      ),

      // body
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Selected Time:',
              style: const TextStyle(fontSize: 16),
            ),

            // Selected Time
            Text(
              _selectedTime.format(context),
              style: const TextStyle(fontSize: 24),
              textAlign: TextAlign.center,
            ),
          ],
        ),
      ),

      // Floating Action Button
      floatingActionButton: Column(
        mainAxisSize: MainAxisSize.min,
        children: [
          /// Material Floating Action Button
          FloatingActionButton.extended(
            onPressed: () {
              showTimePicker(
                context: context,
                initialTime: _now,
              ).then((TimeOfDay? time) {
                if (time != null) {
                  setState(() {
                    _selectedTime = time;
                  });
                }
              });
            },
            icon: const Icon(Icons.access_time),
            label: Text('Open Material Picker'),
          ),
          SizedBox(height: 32),

          /// Better Time Picker Floating Action Button
          FloatingActionButton.extended(
            onPressed: () async {
              final time = await AnalogTimePickerDialog.show(
                context,
                initialTime: _now,
                minTime: TimeOfDay(hour: _now.hour, minute: _now.minute + 10),
                // maxTime:
                //     TimeOfDay(hour: _now.hour + 2, minute: _now.minute + 10),
              );
              if (time != null) {
                setState(() {
                  _selectedTime = time;
                });
              }
            },
            icon: const Icon(Icons.access_time),
            label: Text('Open Better Time Picker'),
          ),
        ],
      ),
    );
  }
}
4
likes
140
points
38
downloads

Publisher

unverified uploader

Weekly Downloads

A better analog time picker

Homepage
Repository (GitHub)

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter

More

Packages that depend on better_analog_time_picker