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.
119 lines
3.3 KiB
119 lines
3.3 KiB
import 'package:flutter/material.dart'; |
|
import 'package:huixiang/view_widget/keyboard/custom_keyboard_button.dart'; |
|
import 'package:huixiang/view_widget/keyboard/pay_password.dart' as K; |
|
|
|
/// 自定义密码 键盘 |
|
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(K.KeyEvent("commit")); |
|
} |
|
|
|
void onOneChange(BuildContext cont) { |
|
widget.callback(K.KeyEvent("1")); |
|
} |
|
|
|
void onTwoChange(BuildContext cont) { |
|
widget.callback(K.KeyEvent("2")); |
|
} |
|
|
|
void onThreeChange(BuildContext cont) { |
|
widget.callback(K.KeyEvent("3")); |
|
} |
|
|
|
void onFourChange(BuildContext cont) { |
|
widget.callback(K.KeyEvent("4")); |
|
} |
|
|
|
void onFiveChange(BuildContext cont) { |
|
widget.callback(K.KeyEvent("5")); |
|
} |
|
|
|
void onSixChange(BuildContext cont) { |
|
widget.callback(K.KeyEvent("6")); |
|
} |
|
|
|
void onSevenChange(BuildContext cont) { |
|
widget.callback(K.KeyEvent("7")); |
|
} |
|
|
|
void onEightChange(BuildContext cont) { |
|
widget.callback(K.KeyEvent("8")); |
|
} |
|
|
|
void onNineChange(BuildContext cont) { |
|
widget.callback(K.KeyEvent("9")); |
|
} |
|
|
|
void onZeroChange(BuildContext cont) { |
|
widget.callback(K.KeyEvent("0")); |
|
} |
|
|
|
/// 点击删除 |
|
void onDeleteChange() { |
|
widget.callback(K.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()), |
|
], |
|
), |
|
], |
|
), |
|
); |
|
} |
|
}
|
|
|