আমি মনে করি যে আপনি _buildBody ব্যবহার শিশুদের কিছু উইজেট বৈশিষ্ট্য, তাই শিশুদের আশা একটি তালিকা উইজেট (উইজেট অ্যারে) এবং _buildBody একটি ফেরৎ তালিকায় গতিশীল ' ।
খুব সহজ উপায়ে, আপনি এটি পরিবর্তন করতে একটি পরিবর্তনশীল ব্যবহার করতে পারেন:
List<Widget> widgets = [
Text('Line 1'),
Text('Line 2'),
Text('Line 3'),
];
Column(
children: widgets
)
উদাহরণ ( ঝাপটানি পাচ্ছেন test1 তৈরি ; সিডি পাচ্ছেন test1 ; সম্পাদন করা lib / অনুপস্থিত main.dart ; ঝাপটানি রান ):
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
List<Widget> widgets = [
Text('Line 1'),
Text('Line 2'),
Text('Line 3'),
];
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text("List of Widgets Example")),
body: Column(
children: widgets
)
)
);
}
}
উইজেটগুলির একটি তালিকার (অ্যারেঅফ উইজেট ) মধ্যে উইজেট (ওয়ান উইজেট ) ব্যবহার করে অন্য একটি উদাহরণ । আমি দেখিয়েছি কীভাবে কোনও উইজেটকে (মাইবাটন) কোনও উইজেটকে ব্যক্তিগতকৃত করতে এবং কোডের আকার হ্রাস করতে হয়:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
List<Widget> arrayOfWidgets = [
Text('My Buttons'),
MyButton('Button 1'),
MyButton('Button 2'),
MyButton('Button 3'),
];
Widget oneWidget(List<Widget> _lw) { return Column(children: _lw); }
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text("Widget with a List of Widget's Example")),
body: oneWidget(arrayOfWidgets)
)
);
}
}
class MyButton extends StatelessWidget {
final String text;
MyButton(this.text);
@override
Widget build(BuildContext context) {
return FlatButton(
color: Colors.red,
child: Text(text),
onPressed: (){print("Pressed button '$text'.");},
);
}
}
আমি একটি সম্পূর্ণ উদাহরণ তৈরি করেছি যে আমি স্ক্রিনে উইজেটগুলি দেখানোর জন্য এবং লুকানোর জন্য ডায়নামিক উইজেট ব্যবহার করি , আপনি এটি ডার্ট ফ্রিডলেও অনলাইনে চলতে দেখতে পাচ্ছেন ।
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
List item = [
{"title": "Button One", "color": 50},
{"title": "Button Two", "color": 100},
{"title": "Button Three", "color": 200},
{"title": "No show", "color": 0, "hide": '1'},
];
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text("Dynamic Widget - List<Widget>"),backgroundColor: Colors.blue),
body: Column(
children: <Widget>[
Center(child: buttonBar()),
Text('Click the buttons to hide it'),
]
)
)
);
}
Widget buttonBar() {
return Column(
children: item.where((e) => e['hide'] != '1').map<Widget>((document) {
return new FlatButton(
child: new Text(document['title']),
color: Color.fromARGB(document['color'], 0, 100, 0),
onPressed: () {
setState(() {
print("click on ${document['title']} lets hide it");
final tile = item.firstWhere((e) => e['title'] == document['title']);
tile['hide'] = '1';
});
},
);
}
).toList());
}
}
হতে পারে এটি কাউকে সাহায্য করে। যদি এটি আপনার পক্ষে কার্যকর হয় তবে দয়া করে আপ তীরটিতে ক্লিক করতে আমাকে জানান। ধন্যবাদ
https://dartpad.dev/b37b08cc25e0ccdba680090e9ef4b3c1