Flutter选择器插件wheel_chooser的使用

发布于 1周前 作者 bupafengyu 来自 Flutter

Flutter选择器插件wheel_chooser的使用

WheelChooser 是一个允许用户通过滚动轮盘来选择数字、字符串或自定义小部件的Flutter插件。

安装

pubspec.yaml 文件中添加依赖:

dependencies:
  wheel_chooser: ^1.1.2

创建 WheelChooser 小部件

显示字符串

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

class StringChooserExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('String Chooser')),
      body: Center(
        child: WheelChooser(
          onValueChanged: (s) => print(s),
          datas: ["a", "b", "c"],
        ),
      ),
    );
  }
}

显示整数

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

class IntegerChooserExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Integer Chooser')),
      body: Center(
        child: WheelChooser.integer(
          onValueChanged: (i) => print(i),
          maxValue: 10,
          minValue: 1,
          step: 2,
        ),
      ),
    );
  }
}

显示带有标题和返回值的选项

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

class ChoiceChooserExample extends StatelessWidget {
  final List<WheelChoice> aChoices = [
    WheelChoice(value: DateTime(2000, 1, 1, 9, 0), title: '9AM'),
    WheelChoice(value: DateTime(2000, 1, 1, 9, 30), title: '9:30AM'),
    WheelChoice(value: DateTime(2000, 1, 1, 10, 0), title: '10AM'),
    WheelChoice(value: DateTime(2000, 1, 1, 10, 30), title: '10:30AM'),
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Choice Chooser')),
      body: Center(
        child: WheelChooser.choices(
          choices: aChoices,
          onChoiceChanged: (value) {
            print('selected time is ${value.hour} hours and ${value.minute} minutes');
          },
        ),
      ),
    );
  }
}

显示自定义小部件

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

class CustomChooserExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Custom Chooser')),
      body: Center(
        child: WheelChooser.custom(
          onValueChanged: (a) => print(a),
          children: <Widget>[
            Text("data1"),
            Text("data2"),
            Text("data3"),
          ],
        ),
      ),
    );
  }
}

使用示例

垂直显示整数

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

class VerticalIntegerExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Vertical Integer Chooser')),
      body: Center(
        child: WheelChooser.integer(
          onValueChanged: (s) => print(s.toString()),
          maxValue: 18,
          minValue: 1,
          initValue: 5,
          unSelectTextStyle: TextStyle(color: Colors.grey),
        ),
      ),
    );
  }
}

水平显示整数

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

class HorizontalIntegerExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Horizontal Integer Chooser')),
      body: Center(
        child: WheelChooser.integer(
          onValueChanged: (s) => print(s.toString()),
          maxValue: 20,
          minValue: 1,
          initValue: 9,
          horizontal: true,
          unSelectTextStyle: TextStyle(color: Colors.grey),
        ),
      ),
    );
  }
}

从 v0.1.1 开始支持无限滚动,从 v1.0.0 开始支持空安全。


以上代码提供了完整的示例demo,涵盖了 `WheelChooser` 的基本用法,包括显示字符串、整数、自定义选项和自定义小部件等。你可以根据需要选择适合的实现方式。

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

1 回复

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


当然,以下是一个关于如何在Flutter项目中使用wheel_chooser插件的示例代码。wheel_chooser是一个用于创建选择器轮盘的插件,通常用于日期选择、时间选择或其他需要轮盘选择的项目。

1. 添加依赖

首先,在你的pubspec.yaml文件中添加wheel_chooser的依赖:

dependencies:
  flutter:
    sdk: flutter
  wheel_chooser: ^latest_version  # 请替换为最新版本号

然后运行flutter pub get来安装依赖。

2. 导入插件

在你的Dart文件中导入wheel_chooser

import 'package:wheel_chooser/wheel_chooser.dart';

3. 使用WheelChooser

下面是一个完整的示例,展示如何使用WheelChooser创建一个简单的选择器:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Wheel Chooser Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: WheelChooserDemo(),
    );
  }
}

class WheelChooserDemo extends StatefulWidget {
  @override
  _WheelChooserDemoState createState() => _WheelChooserDemoState();
}

class _WheelChooserDemoState extends State<WheelChooserDemo> {
  final List<String> items = List.generate(20, (index) => "Item ${index + 1}");
  String? selectedItem;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Wheel Chooser Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            WheelChooser(
              itemCount: items.length,
              itemBuilder: (context, index) {
                return Center(
                  child: Text(
                    items[index],
                    style: TextStyle(fontSize: 20),
                  ),
                );
              },
              onSelected: (index) {
                setState(() {
                  selectedItem = items[index];
                });
              },
              // 可选参数,用于设置初始选中项
              selectedItemIndex: items.indexOf(selectedItem ?? items.first),
            ),
            SizedBox(height: 20),
            Text(
              'Selected: ${selectedItem ?? 'None'}',
              style: TextStyle(fontSize: 24),
            ),
          ],
        ),
      ),
    );
  }
}

解释

  1. 添加依赖:确保在pubspec.yaml文件中添加了wheel_chooser依赖。
  2. 导入插件:在Dart文件中导入wheel_chooser
  3. 创建数据:在WheelChooserDemo类中创建了一个包含20个字符串的列表items
  4. 构建UI
    • 使用WheelChooser组件来创建选择器。
    • itemCount属性表示选择器中项目的数量。
    • itemBuilder属性用于构建每个项目,返回一个包含文本的小部件。
    • onSelected回调函数在选中某个项目时被调用,并更新选中项。
    • selectedItemIndex可选参数用于设置初始选中项。
  5. 显示选中项:在WheelChooser下方显示当前选中的项目。

通过以上步骤,你就可以在Flutter项目中成功使用wheel_chooser插件来创建一个选择器轮盘。

回到顶部