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

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

特性

Phoenix 将作为企业级基础组件提供项目支持。

开始使用

Phoenix 将作为企业级基础组件提供项目支持。

使用方法

Phoenix 将作为企业级基础组件提供项目支持。

const like = 'sample';

其他信息

Phoenix 将作为企业级基础组件提供项目支持。


示例代码

import 'package:flutter/material.dart';
import 'package:phoenix_base/phoenix.dart';
import 'package:phoenix_picker/phoenix_picker.dart';

import 'picker_entry_page.dart';

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

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

  // 这是你的应用的根小部件。
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      localizationsDelegates: [BrnLocalizationDelegate.delegate],
      theme: ThemeData(
        // 这是你的应用的主题。
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: PickerEntryPage('Picker'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  // 这是你应用的主页。它是一个有状态的小部件,意味着它有一个状态对象(定义在下面),该对象包含影响其外观的字段。
  
  final String title;

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

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      // 这次调用setState告诉Flutter框架某些东西已经改变,这将导致它重新运行下面的build方法,以便显示可以反映更新值的内容。如果我们不调用setState而只是改变_counter,则不会重新调用构建方法,因此看起来什么都不会发生。
      _counter++;
    });

    // 显示底部写入选择器
    BottomWritePicker.show(context, title: 'BottomWritePicker');
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            const Text(
              '你按下了按钮这么多次:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headlineMedium,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: '增加',
        child: const Icon(Icons.add),
      ),
    );
  }
}

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

1 回复

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


phoenix_picker 是一个 Flutter 插件,用于在应用中选择日期和时间。它提供了多种样式和自定义选项,可以帮助你轻松地在应用中集成日期时间选择功能。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  phoenix_picker: ^1.0.0  # 请根据实际情况使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 基本使用

日期选择器

你可以使用 PhoenixDatePicker 来显示一个日期选择器。以下是一个简单的示例:

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

class DatePickerExample extends StatefulWidget {
  @override
  _DatePickerExampleState createState() => _DatePickerExampleState();
}

class _DatePickerExampleState extends State<DatePickerExample> {
  DateTime selectedDate = DateTime.now();

  Future<void> _selectDate(BuildContext context) async {
    final DateTime? picked = await PhoenixDatePicker.showDatePicker(
      context,
      initialDate: selectedDate,
      firstDate: DateTime(2000),
      lastDate: DateTime(2100),
    );
    if (picked != null && picked != selectedDate) {
      setState(() {
        selectedDate = picked;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Date Picker Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              "Selected Date: ${selectedDate.toLocal()}",
              style: TextStyle(fontSize: 20),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () => _selectDate(context),
              child: Text('Select Date'),
            ),
          ],
        ),
      ),
    );
  }
}

void main() => runApp(MaterialApp(
  home: DatePickerExample(),
));

时间选择器

你可以使用 PhoenixTimePicker 来显示一个时间选择器。以下是时间选择器的示例:

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

class TimePickerExample extends StatefulWidget {
  @override
  _TimePickerExampleState createState() => _TimePickerExampleState();
}

class _TimePickerExampleState extends State<TimePickerExample> {
  TimeOfDay selectedTime = TimeOfDay.now();

  Future<void> _selectTime(BuildContext context) async {
    final TimeOfDay? picked = await PhoenixTimePicker.showTimePicker(
      context,
      initialTime: selectedTime,
    );
    if (picked != null && picked != selectedTime) {
      setState(() {
        selectedTime = picked;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Time Picker Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              "Selected Time: ${selectedTime.format(context)}",
              style: TextStyle(fontSize: 20),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () => _selectTime(context),
              child: Text('Select Time'),
            ),
          ],
        ),
      ),
    );
  }
}

void main() => runApp(MaterialApp(
  home: TimePickerExample(),
));

3. 自定义选项

phoenix_picker 提供了多种自定义选项,比如改变主题、设置最小和最大日期/时间、自定义按钮文本等。你可以根据需要调整这些选项以获得更符合你应用风格的效果。

例如,自定义日期选择器的主题:

PhoenixDatePicker.showDatePicker(
  context,
  initialDate: selectedDate,
  firstDate: DateTime(2000),
  lastDate: DateTime(2100),
  theme: ThemeData(
    primarySwatch: Colors.blue,
    accentColor: Colors.red,
  ),
);
回到顶部