xxxxxxxxxx
import 'package:flutter/material.dart';
class MyFormPage extends StatefulWidget {
@override
_MyFormPageState createState() => _MyFormPageState();
}
class _MyFormPageState extends State<MyFormPage> {
final _formKey = GlobalKey<FormState>();
String _name = '';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('TextFormField Example'),
),
body: Form(
key: _formKey,
child: Padding(
padding: EdgeInsets.all(16.0),
child: Column(
children: [
TextFormField(
decoration: InputDecoration(
labelText: 'Name',
hintText: 'Enter your name',
),
validator: (value) {
if (value.isEmpty) {
return 'Please enter your name';
}
return null;
},
onSaved: (value) {
setState(() {
_name = value;
});
},
),
SizedBox(height: 16.0),
RaisedButton(
child: Text('Submit'),
onPressed: () {
if (_formKey.currentState.validate()) {
_formKey.currentState.save();
print('Name: $_name');
}
},
),
],
),
),
),
);
}
}
xxxxxxxxxx
import 'package:flutter/material.dart';
class MyTextFieldPage extends StatefulWidget {
@override
_MyTextFieldPageState createState() => _MyTextFieldPageState();
}
class _MyTextFieldPageState extends State<MyTextFieldPage> {
TextEditingController _controller;
@override
void initState() {
super.initState();
_controller = TextEditingController();
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('TextField Controller Example'),
),
body: Padding(
padding: EdgeInsets.all(16.0),
child: TextField(
controller: _controller, // Attaching the controller to TextField
decoration: InputDecoration(
labelText: 'Enter some text',
),
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
print(_controller.text); // Accessing the text entered in TextField
},
child: Icon(Icons.save),
),
);
}
}
void main() {
runApp(MaterialApp(home: MyTextFieldPage()));
}
xxxxxxxxxx
// full text field
TextField(
cursorHeight: 20,
autofocus: false,
controller: TextEditingController(text: "Initial Text here"),
decoration: InputDecoration(
labelText: 'Enter your username',
hintText: "Enter your Name",
prefixIcon: Icon(Icons.star),
suffixIcon: Icon(Icons.keyboard_arrow_down),
contentPadding: const EdgeInsets.symmetric(vertical: 10,horizontal: 10),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(30),
borderSide: BorderSide(color: Colors.grey, width: 2),
),
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(30),
borderSide: BorderSide(color: Colors.grey, width: 1.5),
),
focusedBorder: OutlineInputBorder(
gapPadding: 0.0,
borderRadius: BorderRadius.circular(30),
borderSide: BorderSide(color: Colors.red, width: 1.5),
),
),
)
xxxxxxxxxx
TextFormField(
decoration: const InputDecoration(
border: UnderlineInputBorder(),
labelText: 'Enter your username',
),
),
xxxxxxxxxx
TextField (
decoration: InputDecoration(
border: InputBorder.none,
labelText: 'Enter Name',
hintText: 'Enter Your Name'
),
);
xxxxxxxxxx
TextFormField(
controller: _textEditingController,
keyboardType: TextInputType.name,
decoration: const InputDecoration(
labelText: "Enter username",
labelStyle: TextStyle(
fontSize: 12.0,
fontWeight: FontWeight.w600,
color: Colors.grey),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.green, width: 2.0),
borderRadius: BorderRadius.all(Radius.circular(20.0)),
),
focusedBorder: OutlineInputBorder(
borderSide:
BorderSide(color: Colors.redAccent, width: 2.0),
borderRadius: BorderRadius.all(Radius.circular(20.0)))),
),
xxxxxxxxxx
TextFormField(
decoration: const InputDecoration(
border: UnderlineInputBorder(),
labelText: 'Enter your username'
),
);
xxxxxxxxxx
TextField(
cursorColor: Colors.grey,
style: TextStyle(fontSize: 16, fontFamily: "SF Pro Display"),
decoration: InputDecoration(
filled: true,
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10)),
borderSide: BorderSide(
width: 0.2,
color: Colors.grey,
),
),
focusColor: Colors.grey,
hintText: "Input card holder name",
fillColor: Colors.white,
enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(10)),
borderSide: BorderSide(
width: 0.2,
color: Colors.grey,
),
),
),
),
xxxxxxxxxx
Container(
height: 50,
// margin: EdgeInsets.only(top: 20),
decoration: BoxDecoration(
color: Colors.tealAccent,
borderRadius: BorderRadius.circular(32)),
child: TextFormField(
cursorColor: Colors.black,
// keyboardType: TextInputType.,
decoration: InputDecoration(
hintStyle: TextStyle(fontSize: 17),
hintText: 'Search your trips',
suffixIcon: Icon(Icons.search),
border: InputBorder.none,
contentPadding: EdgeInsets.all(18),
),
),
),
xxxxxxxxxx
String? get _errorText {
// at any time, we can get the text from _controller.value.text
final text = _controller.value.text;
// Note: you can do your own custom validation here
// Move this logic this outside the widget for more testable code
if (text.isEmpty) {
return 'Can\'t be empty';
}
if (text.length < 4) {
return 'Too short';
}
// return null if the text is valid
return null;
}
// then, in the build method:
TextField(
controller: _controller,
decoration: InputDecoration(
labelText: 'Enter your name',
// use the getter variable defined above
errorText: _errorText,
),
),