Flutter数字键盘插件flutter_numeric_keyboard的使用

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

Flutter数字键盘插件flutter_numeric_keyboard的使用

安装

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

dependencies:
  flutter_numeric_keyboard: ^1.0.0

然后导入该包:

import 'package:flutter_numeric_keyboard/flutter_numeric_keyboard.dart';

如何使用

FlutterNumericKeyboard 是一个高度可定制的数字键盘组件。你可以通过传递不同的参数来调整它的外观和行为。

参数

以下是 FlutterNumericKeyboard 的一些常用参数及其说明:

FlutterNumericKeyboard(
  width: 300, // 数字键盘的宽度
  height: 400, // 数字键盘的高度
  showResult: true, // 是否显示结果
  resultTextStyle: const TextStyle( // 结果文本样式
    color: Colors.black,
    fontSize: 20,
    fontWeight: FontWeight.bold,
  ),
  resultFunction: (value) { // 结果函数,用于处理输入值
    print(value);
  },
  obscureResult: false, // 是否遮挡结果
  showDivider: true, // 是否显示分隔线
  rightIconBack: const Icon( // 删除图标
    Icons.backspace,
    color: Colors.blueGrey,
  ),
  showRightIcon: true, // 是否显示删除图标
  leftIconReset: const Icon( // 重置图标
    Icons.refresh,
    color: Colors.blueGrey,
  ),
  showLeftIcon: true, // 是否显示重置图标
  digitStyle: const TextStyle( // 数字样式
    color: Colors.black,
    fontSize: 15,
    fontWeight: FontWeight.bold,
  ),
  backgroundColor: Colors.white, // 背景颜色
  backgroundRadius: 20, // 背景圆角
)

示例代码

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

import 'package:flutter/material.dart';
import 'package:flutter_numeric_keyboard/flutter_numeric_keyboard.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',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flutter numeric keyboard'),
    );
  }
}

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> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.green.shade200,
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: SizedBox(
        width: double.infinity,
        height: double.infinity,
        child: Column(
          children: [
            const SizedBox(
              height: 50,
            ),
            FlutterNumericKeyboard(
              width: 300,
              height: 400,
              showResult: true,
              resultTextStyle: const TextStyle(
                color: Colors.black,
                fontSize: 20,
                fontWeight: FontWeight.bold,
              ),
              resultFunction: (value) {
                print(value); // 打印输入的值
              },
              obscureResult: false,
              showDivider: true,
              rightIconBack: const Icon(
                Icons.backspace,
                color: Colors.blueGrey,
              ),
              showRightIcon: true,
              leftIconReset: const Icon(
                Icons.refresh,
                color: Colors.blueGrey,
              ),
              showLeftIcon: true,
              digitStyle: const TextStyle(
                color: Colors.black,
                fontSize: 15,
                fontWeight: FontWeight.bold,
              ),
              backgroundColor: Colors.white,
              backgroundRadius: 20,
            ),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter数字键盘插件flutter_numeric_keyboard的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter数字键盘插件flutter_numeric_keyboard的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中使用flutter_numeric_keyboard插件的示例代码。这个插件提供了一个自定义的数字键盘,适用于需要用户输入数字的场景。

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

dependencies:
  flutter:
    sdk: flutter
  flutter_numeric_keyboard: ^x.y.z  # 请替换为最新版本号

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

接下来,在你的Flutter应用中,你可以按照以下方式使用flutter_numeric_keyboard

1. 导入必要的包

在你的Dart文件中,导入必要的包:

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

2. 创建一个使用数字键盘的页面

下面是一个完整的示例,展示如何在一个页面上使用数字键盘:

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

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

class NumericKeyboardPage extends StatefulWidget {
  @override
  _NumericKeyboardPageState createState() => _NumericKeyboardPageState();
}

class _NumericKeyboardPageState extends State<NumericKeyboardPage> {
  final TextEditingController _controller = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Numeric Keyboard Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            TextField(
              controller: _controller,
              decoration: InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'Enter a number',
              ),
              keyboardType: TextInputType.number,  // 仍然设置为number,但会使用自定义键盘
              inputFormatters: [FilteringTextInputFormatter.digitsOnly],
              readOnly: true,  // 设置为只读,因为我们使用自定义键盘
            ),
            SizedBox(height: 16.0),
            NumericKeyboard(
              controller: _controller,
              onChange: (String value) {
                // 这里可以处理输入变化,但在这个例子中我们不需要
              },
              onSubmit: (String value) {
                // 提交按钮点击时的回调
                print('Submitted value: $value');
              },
              onDelete: () {
                // 删除按钮点击时的回调
                _controller.text = _controller.text.substring(0, _controller.text.length - 1);
              },
            ),
          ],
        ),
      ),
    );
  }
}

3. 运行应用

保存所有文件并运行你的Flutter应用。你应该会看到一个带有数字键盘的页面,可以输入数字并提交。

说明

  • TextField:设置为只读,因为我们使用自定义的数字键盘进行输入。
  • NumericKeyboard:配置为与TextEditingController一起工作,允许用户在自定义键盘上输入数字。
  • onChange:输入变化时的回调,可以在这里处理输入值的逻辑。
  • onSubmit:提交按钮点击时的回调,通常用于处理用户完成输入后的逻辑。
  • onDelete:删除按钮点击时的回调,用于处理删除操作。

这样,你就成功地在Flutter项目中集成了flutter_numeric_keyboard插件,并创建了一个使用数字键盘的页面。

回到顶部