我正在创建一个测验应用程序,需要根据特定问题的选项数量动态显示mcq选项。
例如:
现在按钮的代码如下:
final quizOptions = Container(
width: MediaQuery.of(context).size.width,
child: Center(
child: Column(
children: <Widget>[
SimpleRoundButton(
backgroundColor: Color.fromRGBO(58, 66, 86, 1.0),
buttonText: Text(questions[questionNum].options[0],
style: TextStyle(
color: Colors.white
),
),
textColor: Colors.white,
onPressed: (){},
),
SimpleRoundButton(
backgroundColor: Color.fromRGBO(58, 66, 86, 1.0),
buttonText: Text(questions[questionNum].options[1],
style: TextStyle(
color: Colors.white
),
),
textColor: Colors.white,
onPressed: (){},
),
],
),
),
);
如你所见,我能做的就是“修复”2个按钮。有没有一种方法可以根据特定问题的选项数量动态添加按钮?
我有一个名为问题的列表,它是一个问题列表(这是一个类):
class Question {
String title;
List options;
String imagePath;
Question(
{this.title, this.options, this.imagePath,});
}
//Example:
Question(
title: "How fast does the drone go ?",
options: ['80km/h', '90km/h', '100km/h'],
imagePath: "assets/images/drones1.jpg",
)
我做了一个完整的例子,我使用动态小部件来显示和隐藏屏幕上的小部件,你也可以看到它在飞镖小提琴上在线运行。
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
您应该遍历您的选项以创建SimpleRoundButton
...................................
child: Column(
children: questions[questionNum].options.map<Widget>(
(option) => SimpleRoundButton(
backgroundColor: Color.fromRGBO(58, 66, 86, 1.0),
buttonText: Text(option,
style: TextStyle(
color: Colors.white
),
),
textColor: Colors.white,
onPressed: (){},
),
).toList(),
.........................
我使用的是flatter,我想给一个小部件添加一个边框(在本例中是widget)。 我尝试了和,但没有看到如何添加边框。
问题内容: 我试图在单击按钮时将诸如文本框,按钮之类的小部件添加到组合中。我已经尝试过了,但是我只能动态地添加这些小部件,最多不超过组合的大小。我的jface对话框是这样的,它具有滚动的复合文件,其中包含复合文件。在主要组合中,我还必须实现此功能的其他3个组合,因此,如果我向组合添加动态小部件,则它可能会扩展,但不应将现有组合叠加到该组合上,而应相应地调整其他组合,并且我应该能够在单击按钮时处理这
如前所述,我试图使用fluttertable_calendar: 2.3.0,我不确定如何将json数据添加到Map中 我使用开始日期作为日期时间,使用事件“列表”作为我使用的数据。 这是我的json数据: 下面是我用来将数据添加到保存新日期数据的_事件变量的映射: void_getEventDates(数据){Map 是否有人可以帮助将json数据转换为在日历上显示所需的格式?
问题内容: 无论如何在qtablewidget中添加像按钮一样的内容?但是必须在单元格中显示日期,例如,如果用户双击某个单元格,我是否可以像按钮一样发送信号?谢谢! edititem(): 表触发器: 问题答案: 您有几个问题可以归结为一个…简短答案,是的,您可以向QTableWidget添加按钮- 您可以通过调用setCellWidget将任何窗口小部件添加到表格窗口小部件: 但这听起来并不像您
问题内容: 我的目标是在页面/父组件上动态添加组件。 我从这样的一些基本示例模板开始: main.js: App.js: SampleComponent.js: 此处已安装到预写在模板中的节点上。但是,如果我需要向App组件中添加不确定数量的组件怎么办?显然,我不能将所有必需的 div都 坐在那里。 在阅读了一些教程之后,我仍然不了解如何动态创建组件并将其动态添加到父组件。有什么办法呢? 问题答案
问题内容: 我有以下非常简单的代码 和背后的代码 我的问题在于,文字控件只能添加一次。我曾搜索过Google和博客网站(以及书籍),但没有任何运气。我想念什么? 问题答案: 在asp.net中,每次回发都会自动生成ASPX文件中的控件。您创建的控件不在ASPX代码中,因此框架不会为您创建它们。第一次执行Button1_Click方法时,您会向页面添加一个额外的控件。第二次执行Button1_Cli