Flutter虚拟键盘插件new_virtual_keyboard的使用

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

Flutter虚拟键盘插件new_virtual_keyboard的使用


Flutter虚拟键盘

Flutter虚拟键盘


简介

new_virtual_keyboard 是一个简单的用于在设备上显示虚拟键盘的包,例如自动柜员机(ATM)或自助服务终端。该库是用Dart编写的,并且没有任何本地代码依赖。

虚拟键盘提供了一组核心功能以在屏幕上显示虚拟键盘。事件管理应该在项目级别完成。


参考

VirtualKeyboard

VirtualKeyboard 是一个Flutter小部件,用于显示虚拟键盘。

// 键盘类型:可以是数字或字母数字。
VirtualKeyboardType type
// 按键事件回调。按键时调用`Key`对象。
Function onKeyPress;
// 虚拟键盘的高度。默认为300。
double height;
// 键文字和图标的颜色。
Color textColor;
// 键文字的字体大小。
double fontSize;
// 仅启用大写字母。
bool alwaysCaps;

VirtualKeyboardType

VirtualKeyboardType 是可用虚拟键盘类型的枚举。

// 仅数字。
VirtualKeyboardType.Numeric
// 字母数字:`[A-Z]` + `[0-9]` + `@` + `.`。
VirtualKeyboardType.Alphanumeric

VirtualKeyboardKey

VirtualKeyboardKey 是虚拟键盘键。

// 键的文字。
String text
// 键的大写文字。
String capsText;
// 动作或字符串。
VirtualKeyboardKeyType keyType;
// 键的动作。
VirtualKeyboardKeyAction action;

VirtualKeyboardKeyType

VirtualKeyboardKeyType 是虚拟键盘键的类型。

// 可以是动作键 - 返回、退格等。
VirtualKeyboardKeyType.Action
// 具有文本值的键 - 字母、数字、逗号等。
VirtualKeyboardKeyType.String

VirtualKeyboardKeyAction

/// 虚拟键盘动作。
enum VirtualKeyboardKeyAction { Backspace, Return, Shift, Space }

使用

显示字母数字键盘(默认视图)

// 将键盘包裹在Container中以设置背景颜色。
Container(
    // 键盘是透明的
    color: Colors.deepPurple,
    child: VirtualKeyboard(
        // 默认高度为300
        height: 350,
        // 默认为黑色
        textColor: Colors.white,
        // 默认14
        fontSize: 20,
        // [A-Z, 0-9]
        type: VirtualKeyboardType.Alphanumeric,
        // 按键事件回调
        onKeyPress: _onKeyPress),
)

显示数字键盘(默认视图)

Container(
    // 键盘是透明的
    color: Colors.red,
    child: VirtualKeyboard(
        // [0-9] + .
        type: VirtualKeyboardType.Numeric,
        // 按键事件回调
        onKeyPress: (key) => print(key.text)),
)

显示字母数字键盘(自定义按键)

Container(
    color: Colors.deepPurple,
    child: VirtualKeyboard(
        height: keyboardHeight,
        textColor: Colors.white,
        fontSize: 20,
        builder: _builder,
        type: VirtualKeyboardType.Numeric,
        onKeyPress: _onKeyPress),
)

/// 键盘键构建器。
Widget _builder(BuildContext context, VirtualKeyboardKey key) {
    Widget keyWidget;

    switch (key.keyType) {
        case VirtualKeyboardKeyType.String:
            // 绘制字符串键。
            keyWidget = _keyboardDefaultKey(key);
            break;
        case VirtualKeyboardKeyType.Action:
            // 绘制动作键。
            keyWidget = _keyboardDefaultActionKey(key);
            break;
    }

    return keyWidget;
}

onKeyPressed 事件基本用法示例

// 仅局部变量。使用Text小部件或其他类似方式在UI中显示。
String text;

/// 当虚拟键盘键被按下时触发。
_onKeyPress(VirtualKeyboardKey key) {
    if (key.keyType == VirtualKeyboardKeyType.String) {
        text = text + (shiftEnabled ? key.capsText : key.text);
    } else if (key.keyType == VirtualKeyboardKeyType.Action) {
        switch (key.action) {
            case VirtualKeyboardKeyAction.Backspace:
                if (text.length == 0) return;
                text = text.substring(0, text.length - 1);
                break;
            case VirtualKeyboardKeyAction.Return:
                text = text + '\n';
                break;
            case VirtualKeyboardKeyAction.Space:
                text = text + key.text;
                break;
            case VirtualKeyboardKeyAction.Shift:
                shiftEnabled = !shiftEnabled;
                break;
            default:
        }
    }
    // 更新屏幕
    setState(() {});
}

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

1 回复

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


当然,以下是如何在Flutter项目中集成和使用new_virtual_keyboard插件的一个基本示例。new_virtual_keyboard插件允许你在Flutter应用中添加自定义的虚拟键盘。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  new_virtual_keyboard: ^latest_version  # 请替换为实际的最新版本号

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

2. 导入插件

在你的Flutter项目中,打开需要使用虚拟键盘的Dart文件,并导入插件:

import 'package:new_virtual_keyboard/new_virtual_keyboard.dart';

3. 使用虚拟键盘

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

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Virtual Keyboard Example'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: VirtualKeyboardExample(),
        ),
      ),
    );
  }
}

class VirtualKeyboardExample extends StatefulWidget {
  @override
  _VirtualKeyboardExampleState createState() => _VirtualKeyboardExampleState();
}

class _VirtualKeyboardExampleState extends State<VirtualKeyboardExample> {
  String _inputText = '';

  void _onTextChanged(String text) {
    setState(() {
      _inputText = text;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: <Widget>[
        Text(
          'Input Text:',
          style: TextStyle(fontSize: 18),
        ),
        SizedBox(height: 8),
        Text(
          _inputText,
          style: TextStyle(fontSize: 24),
        ),
        SizedBox(height: 16),
        ElevatedButton(
          onPressed: () {
            showVirtualKeyboard(
              context: context,
              textController: TextEditingController(text: _inputText),
              doneButtonLabel: 'Done',
              keyboardType: VirtualKeyboardType.DEFAULT,
              onTextChanged: _onTextChanged,
            );
          },
          child: Text('Show Virtual Keyboard'),
        ),
      ],
    );
  }
}

解释

  1. 依赖添加:在pubspec.yaml中添加new_virtual_keyboard依赖。
  2. 导入插件:在需要使用虚拟键盘的Dart文件中导入new_virtual_keyboard
  3. UI布局:创建一个简单的UI,包含一个显示输入文本的Text组件和一个按钮,用于显示虚拟键盘。
  4. 显示虚拟键盘:点击按钮时,调用showVirtualKeyboard方法,并传入相关参数,包括上下文、文本控制器、完成按钮标签、键盘类型以及文本变化回调函数。

注意事项

  • 请确保new_virtual_keyboard插件的最新版本支持你的Flutter SDK版本。
  • showVirtualKeyboard方法的具体参数和用法可能会根据插件的版本有所不同,请参考插件的官方文档进行微调。

这个示例展示了如何基本集成和使用new_virtual_keyboard插件。根据实际需求,你可以进一步自定义和扩展键盘的功能。

回到顶部