tappy_keyboard 2.1.1
tappy_keyboard: ^2.1.1 copied to clipboard
Embedded Screen Keyboard
example/lib/main.dart
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:tappy_keyboard/tappy_keyboard.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Tappy Keyboard',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.blueAccent),
useMaterial3: true,
),
home: HomeScreen(),
);
}
}
class HomeScreen extends StatelessWidget {
const HomeScreen({
super.key,
});
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (c) => NumericKeyboardExample(),
),
);
},
child: Text("Numeric"),
),
SizedBox(height: 16),
ElevatedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (c) => AlphaNumericKeyboardExample(),
),
);
},
child: Text("Alphanumeric"),
),
SizedBox(height: 16),
ElevatedButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (c) => AlphaNumericFormKeyboardExample(),
),
);
},
child: Text("Alphanumeric Form"),
),
],
),
),
);
}
}
class AlphaNumericKeyboardExample extends StatelessWidget {
const AlphaNumericKeyboardExample({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Alpha Numeric Keyboard"),
),
body: TappyKeyboard(
type: TappyKeyboardType.alphanumeric,
showAtSymbol: true,
onTap: (key) {},
child: Padding(
padding: const EdgeInsets.all(40.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
for (int i = 1; i <= 15; i++)
TextField(
decoration: InputDecoration(
label: Text("Input Field $i"),
),
),
],
),
),
),
);
}
}
class AlphaNumericFormKeyboardExample extends StatelessWidget {
const AlphaNumericFormKeyboardExample({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("SubmitFormHook"),
),
body: TappyKeyboard(
type: TappyKeyboardType.alphanumeric,
showAtSymbol: true,
child: Padding(
padding: const EdgeInsets.all(40.0),
child: TappyForm(
onSubmit: () {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text("Form Submitted Successfully!"),
),
);
},
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
for (int i = 1; i <= 2; i++)
TextFormField(
// explicitly defined controller for real-time validation
controller: TextEditingController(),
decoration: InputDecoration(
label: Text("Input Field $i"),
),
onSaved: (value) {
log("Input Field $i: $value", name: 'INFO');
},
validator: (value) {
if (value == null || value.isEmpty) {
return "Required";
}
return null;
},
),
],
),
),
),
),
);
}
}
class NumericKeyboardExample extends StatelessWidget {
const NumericKeyboardExample({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Numeric Keyboard"),
),
body: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
TextField(
decoration: InputDecoration(
label: Text("Editable"),
),
),
IntrinsicWidth(
child: TappyKeyboard(
type: TappyKeyboardType.numeric,
showOnFocus: false,
),
),
],
),
),
);
}
}