You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
3.3 KiB

4 years ago
import 'package:flutter/material.dart';
import 'package:huixiang/view_widget/keyboard/custom_keyboard_button.dart';
import 'package:huixiang/view_widget/keyboard/pay_password.dart';
/// 自定义密码 键盘
class MyKeyboard extends StatefulWidget {
final callback;
MyKeyboard(this.callback);
@override
State<StatefulWidget> createState() {
return MyKeyboardStat();
}
}
class MyKeyboardStat extends State<MyKeyboard> {
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
/// 定义 确定 按钮 接口 暴露给调用方
///回调函数执行体
var backMethod;
void onCommitChange() {
widget.callback(KeyEvent("commit"));
}
void onOneChange(BuildContext cont) {
widget.callback(KeyEvent("1"));
}
void onTwoChange(BuildContext cont) {
widget.callback(KeyEvent("2"));
}
void onThreeChange(BuildContext cont) {
widget.callback(KeyEvent("3"));
}
void onFourChange(BuildContext cont) {
widget.callback(KeyEvent("4"));
}
void onFiveChange(BuildContext cont) {
widget.callback(KeyEvent("5"));
}
void onSixChange(BuildContext cont) {
widget.callback(KeyEvent("6"));
}
void onSevenChange(BuildContext cont) {
widget.callback(KeyEvent("7"));
}
void onEightChange(BuildContext cont) {
widget.callback(KeyEvent("8"));
}
void onNineChange(BuildContext cont) {
widget.callback(KeyEvent("9"));
}
void onZeroChange(BuildContext cont) {
widget.callback(KeyEvent("0"));
}
/// 点击删除
void onDeleteChange() {
widget.callback(KeyEvent("del"));
}
@override
Widget build(BuildContext context) {
return Container(
key: _scaffoldKey,
width: double.infinity,
height: 250.0,
padding: EdgeInsets.all(3),
child: Column(
children: <Widget>[
Row(
children: <Widget>[
CustomKbBtn(text: '1', callback: (val) => onOneChange(context)),
CustomKbBtn(text: '2', callback: (val) => onTwoChange(context)),
CustomKbBtn(text: '3', callback: (val) => onThreeChange(context)),
],
),
Row(
children: <Widget>[
CustomKbBtn(text: '4', callback: (val) => onFourChange(context)),
CustomKbBtn(text: '5', callback: (val) => onFiveChange(context)),
CustomKbBtn(text: '6', callback: (val) => onSixChange(context)),
],
),
Row(
children: <Widget>[
CustomKbBtn(text: '7', callback: (val) => onSevenChange(context)),
CustomKbBtn(text: '8', callback: (val) => onEightChange(context)),
CustomKbBtn(text: '9', callback: (val) => onNineChange(context)),
],
),
Row(
children: <Widget>[
Visibility(child: CustomKbBtn(text: '确定', callback: (val) => onCommitChange()), visible: false,
maintainAnimation: false,
replacement: CustomKbBtn(text: ''),
maintainState: false,
maintainInteractivity: false,
),
CustomKbBtn(text: '0', callback: (val) => onZeroChange(context)),
CustomKbBtn(text: '删除', callback: (val) => onDeleteChange()),
],
),
],
),
);
}
}