উত্তর:
(মেইলিং তালিকা থেকে। আমি এই উত্তরটি নিয়ে আসিনি।)
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 _controller = new TextEditingController();
_controller.text = 'your initial text';
final your_text_name = TextFormField(
autofocus: false,
controller: _controller,
decoration: InputDecoration(
hintText: 'Hint Value',
),
);
এবং যদি আপনার কোন ব্যবহার করছেন না TextEditingController তারপর আপনি সরাসরি ব্যবহার করতে পারেন initialValue নিচের মত
final last_name = TextFormField(
autofocus: false,
initialValue: 'your initial text',
decoration: InputDecoration(
hintText: 'Last Name',
),
);
আরও রেফারেন্সের জন্য TextEditingController
textসম্পত্তির ডক্স অনুসারে TextEditingController.textসম্পত্তিটির প্রাথমিক মান সেট করা ভাল ধারণা কিনা তা আমি নিশ্চিত নই: এটিকে সেট করা এই পাঠ্য সম্পাদনা নিয়ন্ত্রণকারী সমস্ত শ্রোতাকে তাদের আপডেট করতে হবে (এটি notifListeners বলে)। এই কারণে, এই মানটি কেবল ফ্রেমের মধ্যে সেট করা উচিত, যেমন ব্যবহারকারীর ক্রিয়াগুলির প্রতিক্রিয়া হিসাবে, বিল্ড, লেআউট বা পেইন্ট পর্যায়ের সময় নয়। ( api.flutter.dev/flutter/widgets/TextEditingController/text.html )
আপনি যদি TextInputগ্রহণযোগ্য উত্তরের মন্তব্যে @ এমআরটি দ্বারা জিজ্ঞাসিত একাধিক গুলি হ্যান্ডেল করতে চান তবে আপনি এমন একটি ফাংশন তৈরি করতে পারেন যা প্রাথমিক মান গ্রহণ করে এবং এর TextEditingControllerমতো ফেরত দেয় :
initialValue(val) {
return TextEditingController(text: val);
}
তারপরে, এই ফাংশনটিকে নিয়ামক হিসাবে সেট করুন TextInputএবং এর প্রাথমিক মানটি এখানে সরবরাহ করুন:
controller: initialValue('Some initial value here....')
আপনি অন্য TextInputএর জন্য এটি পুনরাবৃত্তি করতে পারেন ।
এটি ব্যবহার করে অর্জন করা যেতে পারে TextEditingController।
প্রাথমিক মান পেতে আপনি যুক্ত করতে পারেন
TextEditingController _controller = TextEditingController(text: 'initial value');
অথবা
আপনি ব্যবহার করে থাকেন TextFormFieldআপনি একটি আছে initialValueসম্পত্তি আছে। যা মূলত এটিকে initialValueস্বয়ংক্রিয়ভাবে নিয়ামককে সরবরাহ করে।
TextEditingController _controller = TextEditingController();
TextFormField(
controller: _controller,
initialValue: 'initial value'
)
পাঠ্য সাফ করার জন্য আপনি _controller.clear()পদ্ধতিটি ব্যবহার করতে পারেন
।
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."
),
...