Flutter 颤振:在小部件调用中使用参数(图标)
我是个新手。为了创建登录按钮,我提取了一个小部件。 我想传递一个参数,该参数指定应该使用的图标,但是我不能在icon小部件的方法调用中添加我的参数。如何管理这一点 错误出现在图标小部件中。 代码:Flutter 颤振:在小部件调用中使用参数(图标),flutter,dart,widget,Flutter,Dart,Widget,我是个新手。为了创建登录按钮,我提取了一个小部件。 我想传递一个参数,该参数指定应该使用的图标,但是我不能在icon小部件的方法调用中添加我的参数。如何管理这一点 错误出现在图标小部件中。 代码: classloginbuttonicon扩展了无状态小部件{ 最终字符串图标名; constLoginButtonicon({Key-Key,@required this.iconName}):super(Key:Key); @凌驾 小部件构建(构建上下文){ 返回上升按钮( onPressed:()
classloginbuttonicon扩展了无状态小部件{
最终字符串图标名;
constLoginButtonicon({Key-Key,@required this.iconName}):super(Key:Key);
@凌驾
小部件构建(构建上下文){
返回上升按钮(
onPressed:()=>“已按下”,
孩子:排(
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
图标(
Icons.iconName,
颜色:颜色,白色,
),
大小盒子(
宽度:15,
),
文本(“RaisedButton”,
样式:TextStyle(颜色:Colors.white,fontSize:14)),
],
),
颜色:颜色。黑色54);
}
}
图标名类型不应为字符串,它应为IconData,并且您应该像这样传递完整的图标。添加图标名类型不应为字符串,它应该是IconData,你应该像这样传递完整的图标图标。添加你走对了。现在声明一个返回图标小部件的函数。在函数中,使用开关案例,根据作为参数传递的字符串返回不同的图标
Icon _getCorrectIcon() {
switch (iconName) {
case 'name-a':
return Icon(Icons.a);
case 'name-b':
return Icon(Icons.b);
case 'name-c':
return Icon(Icons.c);
default:
return Icon(Icons.a);
}
}
将行替换为:
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
_getCorrectIcon(),
SizedBox(
width: 15,
),
Text("RaisedButton",
style: TextStyle(color: Colors.white, fontSize: 14)),
],
),
行(
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
_getCorrectIcon(),
大小盒子(
宽度:15,
),
文本(“RaisedButton”,
样式:TextStyle(颜色:Colors.white,fontSize:14)),
],
),
你走对了路。现在声明一个返回图标小部件的函数。在函数中,使用开关案例,根据作为参数传递的字符串返回不同的图标
Icon _getCorrectIcon() {
switch (iconName) {
case 'name-a':
return Icon(Icons.a);
case 'name-b':
return Icon(Icons.b);
case 'name-c':
return Icon(Icons.c);
default:
return Icon(Icons.a);
}
}
将行替换为:
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
_getCorrectIcon(),
SizedBox(
width: 15,
),
Text("RaisedButton",
style: TextStyle(color: Colors.white, fontSize: 14)),
],
),
行(
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
_getCorrectIcon(),
大小盒子(
宽度:15,
),
文本(“RaisedButton”,
样式:TextStyle(颜色:Colors.white,fontSize:14)),
],
),