我想创建一个动态的ListView,并且每个项目都具有一个来自json配置文件的onTap属性。
其余代码正常运行。
如何在onTap属性上调用此字符串存储命令?
此方法检索已加载的菜单并安装Listview
Widget _itemBuilder(BuildContext context, int index) {
Menu myMenu = Menu(menu[index]);
return new ListTile(
leading: new Text("-"),
title: new Text("Comando ${myMenu.name}"),
onTap: <myMneu.command>,
);
}
json文件
{
"menu": [
{
"id": 1,
"name": "Start",
"command": "StartScreen()"
},
{
"id": 2,
"name": "Pause",
"command": "PauseScreen()"
},
{
"id": 3,
"name": "Finish",
"command": "FinishScreen()"
}
]
}
答案 0 :(得分:1)
您将必须将命令字符串映射到实际的方法调用:
void executeCommand(String cmd) {
switch(cmd) {
case 'startScreen':
startScreen();
break;
case 'pauseScreen':
pauseScreen();
break;
case 'finishScreen':
finishScreen();
break;
}
}
答案 1 :(得分:0)
这将起作用
List callbacks = [
{
'name': "test1",
'callback': test,
},
{
'name': "test2",
'callback': test,
}
];
static test() {
print("TIMER TEST");
}
Function.apply(callbacks['callback'], []);
// or
callbacks['callback'];
或
List callbacks2 = [
{
'name': "test",
'callback': () => test(),
},
];