जवाबों:
(मेलिंग सूची से। मैं इस जवाब के साथ नहीं आया था।)
class _FooState extends State<Foo> {
TextEditingController _controller;
@override
void initState() {
super.initState();
_controller = new TextEditingController(text: 'Initial value');
}
@override
Widget build(BuildContext context) {
return new Column(
children: <Widget>[
new TextField(
// The TextField is first built, the controller has some initial text,
// which the TextField shows. As the user edits, the text property of
// the controller is updated.
controller: _controller,
),
new RaisedButton(
onPressed: () {
// You can also use the controller to manipuate what is shown in the
// text field. For example, the clear() method removes all the text
// from the text field.
_controller.clear();
},
child: new Text('CLEAR'),
),
],
);
}
}
आप TextFormField
इसके बजाय का उपयोग कर सकते हैं TextField
, और initialValue
संपत्ति का उपयोग कर सकते हैं। उदाहरण के लिए
TextFormField(initialValue: "I am smart")
आपको विजेट स्कोप में एक अलग वैरिएबल को परिभाषित करने की आवश्यकता नहीं है, बस इसे इनलाइन करें:
TextField(
controller: TextEditingController()..text = 'Your initial value',
onChanged: (text) => {},
)
यदि आप TextEditingController का उपयोग कर रहे हैं तो नीचे दिए गए की तरह पाठ सेट करें
TextEditingController _controller = new TextEditingController();
_controller.text = 'your initial text';
final your_text_name = TextFormField(
autofocus: false,
controller: _controller,
decoration: InputDecoration(
hintText: 'Hint Value',
),
);
और यदि आप किसी भी TextEditingController का उपयोग नहीं कर रहे हैं तो आप सीधे नीचे दिए गए तरह प्रारंभिक उपयोग कर सकते हैं
final last_name = TextFormField(
autofocus: false,
initialValue: 'your initial text',
decoration: InputDecoration(
hintText: 'Last Name',
),
);
अधिक संदर्भ के लिए TextEditingController
text
संपत्ति के डॉक्स के अनुसार संपत्ति का प्रारंभिक मूल्य निर्धारित करना एक अच्छा विचार है TextEditingController.text
: इसे सेट करना इस TextEditingController के सभी श्रोताओं को सूचित करेगा कि उन्हें अपडेट करने की आवश्यकता है (इसे कॉल करते हैं InformListeners)। इस कारण से, यह मान केवल फ़्रेम के बीच सेट किया जाना चाहिए, उदाहरण के लिए उपयोगकर्ता कार्यों के जवाब में, न कि निर्माण, लेआउट, या पेंट चरणों के दौरान। ( api.flutter.dev/flutter/widgets/TextEditingController/text.html )
यदि आप TextInput
स्वीकार किए गए उत्तर में टिप्पणी में @MRT द्वारा पूछे गए कई एस को संभालना चाहते हैं , तो आप एक फ़ंक्शन बना सकते हैं जो एक प्रारंभिक मूल्य लेता है और TextEditingController
इस तरह वापस आता है :
initialValue(val) {
return TextEditingController(text: val);
}
फिर, इस फ़ंक्शन को नियंत्रक के रूप में सेट करें TextInput
और इस तरह से इसके प्रारंभिक मूल्य की आपूर्ति करें:
controller: initialValue('Some initial value here....')
आप इसे दूसरे TextInput
s के लिए दोहरा सकते हैं ।
इसका उपयोग करके प्राप्त किया जा सकता है TextEditingController
।
एक प्रारंभिक मूल्य है जिसे आप जोड़ सकते हैं
TextEditingController _controller = TextEditingController(text: 'initial value');
या
यदि आप उपयोग कर रहे TextFormField
हैं तो आपके पास एक initialValue
संपत्ति है। जो मूल रूप initialValue
से नियंत्रक को यह स्वचालित रूप से प्रदान करता है ।
TextEditingController _controller = TextEditingController();
TextFormField(
controller: _controller,
initialValue: 'initial value'
)
पाठ को खाली करने के लिए आप _controller.clear()
विधि का उपयोग कर सकते हैं
।
वर्ग के अंदर,
final usernameController = TextEditingController(text: 'bhanuka');
पाठ का क्षेत्र,
child: new TextField(
controller: usernameController,
...
)
TextEdittingController _controller = new TextEdittingController(text: "your Text");
या
@override
void initState() {
super.initState();
_Controller.text = "Your Text";
}
यदि आपको इसके लिए और यहां आने वालों के लिए जवाब नहीं मिला है, तो इस InputDecoration
क्षेत्र के संकेत की जांच करें:
new TextField(
decoration: new InputDecoration(
hintText:"My Text String."
),
...