Flutter时间选择器插件timer_picker_spinner_with_hours_and_minutes的使用

Flutter时间选择器插件time_picker_spinner的使用

time_picker_spinner 是一个带有选择器的时间选择器插件,而不是默认的Material设计时间选择器。该组件支持12小时或24小时格式,并且支持自定义间隔模式。此外,该包还支持阿拉伯语和英语的本地化。

Pub Version

Demo gif

image

安装

  1. 将以下内容添加到您的 pubspec.yaml 文件中:
dependencies:
  time_picker_spinner: any
  1. 使用IDE的GUI或者命令行获取包:
$ pub get
  1. 在您的应用中导入 time_picker_spinner.dart 文件:
import 'package:time_picker_spinner/time_picker_spinner.dart';

功能

  • 支持12小时制
  • 支持24小时制
  • 支持阿拉伯语和英语的本地化

使用

英文示例

TimePickerSpinner(
  locale: const Locale('en', ''), // 设置为英文
  time: dateTime, // 当前时间
  is24HourMode: false, // 是否为24小时制
  isShowSeconds: true, // 是否显示秒
  itemHeight: 80, // 项目高度
  normalTextStyle: const TextStyle(
    fontSize: 24,
  ), // 正常文本样式
  highlightedTextStyle: const TextStyle(fontSize: 24, color: Colors.blue), // 高亮文本样式
  isForce2Digits: true, // 是否强制两位数
  onTimeChange: (time) { // 时间改变时的回调
    setState(() {
      dateTime = time;
    });
  },
)

阿拉伯语示例

TimePickerSpinner(
  locale: const Locale('ar', ''), // 设置为阿拉伯语
  time: dateTime, // 当前时间
  is24HourMode: false, // 是否为24小时制
  isShowSeconds: true, // 是否显示秒
  itemHeight: 80, // 项目高度
  normalTextStyle: const TextStyle(
    fontSize: 24,
  ), // 正常文本样式
  highlightedTextStyle: const TextStyle(fontSize: 24, color: Colors.blue), // 高亮文本样式
  isForce2Digits: true, // 是否强制两位数
  onTimeChange: (time) { // 时间改变时的回调
    setState(() {
      dateTime = time;
    });
  },
)

属性

属性名称 类型 默认值
time DateTime 当前时间 [DateTime.now()]
minutesInterval int 1
secondsInterval int 1
is24HourMode bool true
isShowSeconds bool false
highlightedTextStyle TextStyle false
normalTextStyle TextStyle false
itemHeight double 60.0
itemWidth double 45.0
spacing double 20.0
alignment AlignmentGeometry Alignment.centerRight
isForce2Digits bool false
onTimeChange TimePickerCallback -
locale Locale en

其他信息

这是一个更新后的包,原始包来自 icemanbsi/flutter_time_picker_spinner

完整示例

以下是一个完整的示例代码,展示了如何在Flutter应用中使用 time_picker_spinner 插件:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Time Picker Spinner Example')),
        body: Center(
          child: TimePickerWidget(),
        ),
      ),
    );
  }
}

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

class _TimePickerWidgetState extends State<TimePickerWidget> {
  DateTime dateTime = DateTime.now();

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        TimePickerSpinner(
          locale: const Locale('en', ''), // 设置为英文
          time: dateTime, // 当前时间
          is24HourMode: false, // 是否为24小时制
          isShowSeconds: true, // 是否显示秒
          itemHeight: 80, // 项目高度
          normalTextStyle: const TextStyle(
            fontSize: 24,
          ), // 正常文本样式
          highlightedTextStyle: const TextStyle(fontSize: 24, color: Colors.blue), // 高亮文本样式
          isForce2Digits: true, // 是否强制两位数
          onTimeChange: (time) { // 时间改变时的回调
            setState(() {
              dateTime = time;
            });
          },
        ),
        SizedBox(height: 20),
        Text(
          "Selected Time: ${dateTime.hour}:${dateTime.minute}:${dateTime.second}",
          style: TextStyle(fontSize: 18),
        ),
      ],
    );
  }
}
1 回复

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


timer_picker_spinner_with_hours_and_minutes 是一个 Flutter 插件,用于在应用中选择小时和分钟的时间。它提供了一个类似于滚轮的选择器,用户可以通过滚动来选择小时和分钟。

安装插件

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

dependencies:
  flutter:
    sdk: flutter
  timer_picker_spinner_with_hours_and_minutes: ^1.0.0

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

基本用法

  1. 导入插件

    在你的 Dart 文件中导入插件:

    import 'package:timer_picker_spinner_with_hours_and_minutes/timer_picker_spinner_with_hours_and_minutes.dart';
  2. 使用 TimerPickerSpinner

    你可以在你的 UI 中使用 TimerPickerSpinner 组件来显示时间选择器。以下是一个简单的示例:

    import 'package:flutter/material.dart';
    import 'package:timer_picker_spinner_with_hours_and_minutes/timer_picker_spinner_with_hours_and_minutes.dart';
    
    class TimerPickerExample extends StatefulWidget {
      @override
      _TimerPickerExampleState createState() => _TimerPickerExampleState();
    }
    
    class _TimerPickerExampleState extends State<TimerPickerExample> {
      Duration _selectedDuration = Duration(hours: 0, minutes: 0);
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('Timer Picker Example'),
          ),
          body: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                TimerPickerSpinner(
                  isShowSeconds: false,
                  isForce2Digits: true,
                  onTimeChange: (Duration duration) {
                    setState(() {
                      _selectedDuration = duration;
                    });
                  },
                ),
                SizedBox(height: 20),
                Text(
                  'Selected Time: ${_selectedDuration.inHours}:${_selectedDuration.inMinutes.remainder(60)}',
                  style: TextStyle(fontSize: 20),
                ),
              ],
            ),
          ),
        );
      }
    }
    
    void main() {
      runApp(MaterialApp(
        home: TimerPickerExample(),
      ));
    }
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!