For help getting started with Flutter, view our online documentation.
For help on editing package code, view the documentation. 
- Depend on it
dependencies: gesture_password: "^0.0.4"- Install it
$ flutter packages get- Import it
import 'package:gesture_password/gesture_password.dart'; import 'package:gesture_password/mini_gesture_password.dart';- width 控件宽度(xia-weiyang想法)
- selectedColor 选中的颜色
- normalColor: 没选中的颜色
- lineStrokeWidth: 线宽
- circleStrokeWidth: 选中外圈圆宽
- smallCircleR: 小圆半径
- bigCircleR: 大圆半径
- focusDistance: 选中差值 越大越容易选中
- successCallback 选择4个以上松手回调,返回值为选中的index相加的字符串
- failCallback 选择4下以上松手回调
- selectedCallback 经过任意一个后回调,返回值为选中的index相加的字符串
import 'package:flutter/material.dart'; import 'package:gesture_password/gesture_password.dart'; import 'package:gesture_password/mini_gesture_password.dart'; void main() => runApp(new MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return new MaterialApp( title: 'Flutter Demo', theme: new ThemeData( primarySwatch: Colors.blue, ), home: new MyHomePage(title: 'Flutter Demo Home Page'), ); } } class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key); final String title; @override _MyHomePageState createState() => new _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { GlobalKey<MiniGesturePasswordState> miniGesturePassword = new GlobalKey<MiniGesturePasswordState>(); GlobalKey<ScaffoldState> scaffoldState = new GlobalKey<ScaffoldState>(); @override Widget build(BuildContext context) { return new MaterialApp( home: new Scaffold( key: scaffoldState, appBar: new AppBar( title: new Text('Plugin example app'), ), body: new Column( children: <Widget>[ new Center( child: new MiniGesturePassword(key: miniGesturePassword)), new LayoutBuilder( builder: (BuildContext context, BoxConstraints constraints) { return new Container( color: Colors.red, margin: const EdgeInsets.only(top: 100.0), child: new GesturePassword( successCallback: (s) { print("successCallback$s"); scaffoldState.currentState?.showSnackBar(new SnackBar( content: new Text('successCallback:$s'))); miniGesturePassword.currentState?.setSelected(''); }, failCallback: () { print('failCallback'); scaffoldState.currentState?.showSnackBar( new SnackBar(content: new Text('failCallback'))); miniGesturePassword.currentState?.setSelected(''); }, selectedCallback: (str) { miniGesturePassword.currentState?.setSelected(str); }, ), ); }, ), ], ), ), ); } }