Skip to content

Instantly share code, notes, and snippets.

@rayliverified
Created July 5, 2024 10:43
Show Gist options
  • Save rayliverified/0d075340ed69944be4707fc637d717b1 to your computer and use it in GitHub Desktop.
Save rayliverified/0d075340ed69944be4707fc637d717b1 to your computer and use it in GitHub Desktop.
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
title: 'MyApp Demo',
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child: TextField3(),
),
),
);
}
}
class TextField3 extends StatelessWidget {
const TextField3({super.key});
@override
Widget build(BuildContext context) {
return SizedBox(
width: 229,
child: TextFormField(
keyboardType: TextInputType.text,
style: const TextStyle(
color: Colors.black,
fontSize: 14,
fontFamily: 'Roboto',
),
textAlign: TextAlign.left,
textAlignVertical: TextAlignVertical.center,
autocorrect: false,
minLines: null,
maxLength: 20,
inputFormatters: [FilteringTextInputFormatter.allow(RegExp(r'[0-9]'))],
validator: (value) {
if (input == null || input.isEmpty) {
return null;
}
final RegExp regex = RegExp(r'^[0-9]+$');
final Match? match = matchAsPrefix(input ??= ' ');
final bool isValid = match?.start == 0 && match?.end == value.length;
if (isValid) return null;
return 'Only digits are allowed.';
},
cursorHeight: 14,
cursorRadius: const Radius.circular(2),
cursorColor: const Color(0xFF5C69E5),
decoration: InputDecoration(
labelText: 'Label',
labelStyle: const TextStyle(
color: Colors.grey,
fontSize: 14,
fontFamily: 'Roboto',
),
floatingLabelStyle: const TextStyle(
color: Colors.blue,
fontSize: 14,
fontFamily: 'Roboto',
),
hintText: 'Enter text',
hintStyle: const TextStyle(
color: Color(0xFF7F7F7F),
fontSize: 14,
fontFamily: 'Roboto',
),
hintMaxLines: 1,
errorStyle: const TextStyle(
color: Color(0xFFFF0000),
fontSize: 12,
fontFamily: 'Roboto',
),
errorMaxLines: 1,
floatingLabelBehavior: FloatingLabelBehavior.always,
isDense: true,
contentPadding:
const EdgeInsets.symmetric(horizontal: 12, vertical: 16),
counterText: '',
focusColor: Colors.blue,
hoverColor: const Color(0x197F7F7F),
errorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(4.0),
borderSide: const BorderSide(
color: Color(0xFFFF0000),
),
),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(4.0),
borderSide: const BorderSide(
color: Colors.blue,
width: 1.5,
),
),
focusedErrorBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(4.0),
borderSide: const BorderSide(
color: Color(0xFFFF0000),
),
),
disabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(4.0),
borderSide: const BorderSide(
color: Color(0x197F7F7F),
),
),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(4.0),
borderSide: const BorderSide(
color: Color(0x809E9E9E),
width: 1.5,
),
),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(4.0),
borderSide: const BorderSide(
color: Color(0x809E9E9E),
width: 1.5,
),
),
alignLabelWithHint: true,
),
),
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment