Flutter日期时间选择器插件ola_style_datetime_picker的使用

Flutter日期时间选择器插件ola_style_datetime_picker的使用

Ola Style Datetime Picker

Ola Style Datetime Picker 是一个设计风格类似于流行的打车应用 Ola 的日期时间选择器。

作者

安装

pubspec.yaml 文件中添加以下依赖:

dependencies:
  ola_style_datetime_picker: ^版本号

然后在你的 Dart 文件中导入:

import 'package:ola_style_datetime_picker/ola_style_datetime_picker.dart';

使用示例

下面是一个完整的示例代码,展示了如何使用 OlaStyleDateTimePicker 插件来选择日期和时间。

import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:ola_style_datetime_picker/ola_style_datetime_picker.dart';

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

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

  // 这个小部件是你的应用的根节点。
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Ola Style datetime Picker'),
        ),
        body: MyHomePage(),
      ),
    );
  }
}

class MyHomePage extends StatefulWidget {
  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  DateTime? selectedDateTime;

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        padding: EdgeInsets.symmetric(horizontal: 20, vertical: 10),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            Align(
              alignment: Alignment.center,
              child: Text('A Ola Style Date Picker'),
            ),
            SizedBox(height: 40),

            Container(
              padding: EdgeInsets.all(10),
              decoration: BoxDecoration(
                color: Colors.white,
                borderRadius: BorderRadius.circular(20),
                boxShadow: const [
                  BoxShadow(
                    color: Colors.black26,
                    blurRadius: 10,
                    spreadRadius: 2,
                  ),
                ],
              ),
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  Text(
                    'Selected Date time:',
                    style: TextStyle(fontSize: 14),
                  ),
                  SizedBox(height: 10),
                  Text(
                    selectedDateTime != null
                        ? DateFormat('dd MMM, hh:mm a').format(selectedDateTime!)
                        : '滚动以更改',
                    style: TextStyle(fontSize: 14, color: Colors.grey),
                  ),
                  SizedBox(height: 20),
                  OlaStyleDateTimePicker(
                    startDate: DateTime.now(),
                    endDate: DateTime.now().add(Duration(days: 365 * 2)),
                    selectedDate: DateTime.now(),
                    onChanged: (dateTime) {
                      setState(() {
                        selectedDateTime = dateTime;
                      });
                    },
                  ),
                ],
              ),
            ),
            SizedBox(height: 20),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter日期时间选择器插件ola_style_datetime_picker的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter日期时间选择器插件ola_style_datetime_picker的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


ola_style_datetime_picker 是一个 Flutter 插件,用于在应用中显示日期和时间选择器。它提供了一个类似 iOS 风格的日期和时间选择器,用户可以通过滑动选择日期和时间。

安装插件

首先,你需要在 pubspec.yaml 文件中添加 ola_style_datetime_picker 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  ola_style_datetime_picker: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装插件。

使用插件

以下是一个简单的示例,展示如何在 Flutter 应用中使用 ola_style_datetime_picker 插件。

import 'package:flutter/material.dart';
import 'package:ola_style_datetime_picker/ola_style_datetime_picker.dart';

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: DateTimePickerDemo(),
    );
  }
}

class DateTimePickerDemo extends StatefulWidget {
  [@override](/user/override)
  _DateTimePickerDemoState createState() => _DateTimePickerDemoState();
}

class _DateTimePickerDemoState extends State<DateTimePickerDemo> {
  DateTime _selectedDateTime = DateTime.now();

  Future<void> _showDateTimePicker() async {
    final DateTime? picked = await OlaStyleDateTimePicker.showDateTimePicker(
      context,
      initialDateTime: _selectedDateTime,
      minDateTime: DateTime(2020),
      maxDateTime: DateTime(2025),
      dateFormat: 'yyyy-MM-dd HH:mm',
      locale: DateTimePickerLocale.en_us, // 选择器语言
      pickerMode: DateTimePickerMode.datetime, // 选择器模式:日期时间、日期、时间
    );

    if (picked != null && picked != _selectedDateTime) {
      setState(() {
        _selectedDateTime = picked;
      });
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('DateTime Picker Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Selected Date and Time:',
              style: TextStyle(fontSize: 18),
            ),
            Text(
              '${_selectedDateTime.toLocal()}',
              style: TextStyle(fontSize: 22, fontWeight: FontWeight.bold),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _showDateTimePicker,
              child: Text('Pick Date and Time'),
            ),
          ],
        ),
      ),
    );
  }
}
回到顶部