pin_code_widget 1.0.0
pin_code_widget: ^1.0.0 copied to clipboard
Bolid pin-code plugin.
example/lib/main.dart
import 'package:example/theme.dart';
import 'package:flutter/material.dart';
import 'package:pin_code_widget/pin_code_widget.dart';
void main() {
runApp(ExampleApp());
}
class ExampleApp extends StatelessWidget {
const ExampleApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: lightTheme,
darkTheme: darkTheme,
themeMode: ThemeMode.light,
home: const ExamplePage(),
);
}
}
class ExamplePage extends StatefulWidget {
const ExamplePage({super.key});
@override
State<ExamplePage> createState() => _ExamplePageState();
}
class _ExamplePageState extends State<ExamplePage> {
bool resultOfPinCode = false;
void changeEntranceStatus() {
resultOfPinCode = !resultOfPinCode;
setState(() {});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Example')),
body: SafeArea(
child: Stack(
children: [
Align(
alignment: Alignment.center,
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 50),
child: PinCodeWidget(
pinCodeDecorations: PinCodeDecorations(
animationStyle: AnimationsStyle(
animationPattern: AnimationPattern.pulseLoading,
),
),
marginPinCode: const EdgeInsets.only(bottom: 30),
pinLen: 4,
onAuth: (String a) {
// await Future.delayed(const Duration(milliseconds: 4000));
return resultOfPinCode;
// return false;
},
postAuth: () async {
// await Future.delayed(const Duration(milliseconds: 4000));
},
onSuccess: () {
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => const NextScreen(),
),
);
},
),
),
),
Align(
alignment: Alignment.bottomCenter,
child: Padding(
padding: const EdgeInsets.only(bottom: 20),
child: ElevatedButton(
onPressed: changeEntranceStatus,
child: Text(
"Change pin-code result to $resultOfPinCode",
style: TextStyle(color: Colors.amber),
),
),
),
),
],
),
),
);
}
}
class NextScreen extends StatelessWidget {
const NextScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: TextButton(
onPressed: () {
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => const ExampleApp()),
);
},
child: const Text('Go back'),
),
),
);
}
}