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
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()),
|
||
|
],
|
||
|
),
|
||
|
],
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|