将小部件内的图标名称传递给变量
Passing the icon name inside a widget to a variable
如何将图标直接传递给 abstract class Widget extends ?我正在尝试创建此小部件,但它不支持我将图标名称放入字符串中并将其传递到图标 (icons)
buildTextFormField(
"Email teste", emailController, "usuario@imodulo.com",
),
Widget buildTextFormField(
String label,
TextEditingController c,
String hintText,
String icone,
) {
return TextFormField(
controller: c,
autofocus: true,
obscureText: true,
keyboardType: TextInputType.emailAddress,
style: TextStyle(color: Colors.white, fontSize: 16),
decoration: InputDecoration(
labelText: label,
**prefixIcon: Icon(Icons.'$icone'),**
hintText: hintText,
labelStyle: TextStyle(color: Colors.white),
),
);
}
如果您查看 Icon
s,您会发现它们只是字体的索引。所以,实际上图标并没有 'names' 它们有数字。
这是一个随机示例:
static const IconData checklist = IconData(0xe15b, fontFamily: 'MaterialIcons');
因此,与其尝试使用名称 'checklist' 实例化图标,不如使用其编号 0xe15b
.
你打算在哪里存储图标的名称(数据库?后端?),而不是存储一个数字,你的代码变成:
prefixIcon: Icon(IconData(icone, fontFamily: 'MaterialIcons')),
我传递了一个iconData参数
Widget buildTextFormField(
String label,
TextEditingController c,
String hintText,
**IconData icone,**
) {
return TextFormField(
controller: c,
keyboardType: TextInputType.emailAddress,
style: TextStyle(color: Colors.white, fontSize: 16),
decoration: InputDecoration(
labelText: label,
**prefixIcon: Icon(icone),**
hintText: hintText,
labelStyle: TextStyle(color: Colors.white),
),
);
}
如何将图标直接传递给 abstract class Widget extends ?我正在尝试创建此小部件,但它不支持我将图标名称放入字符串中并将其传递到图标 (icons)
buildTextFormField(
"Email teste", emailController, "usuario@imodulo.com",
),
Widget buildTextFormField(
String label,
TextEditingController c,
String hintText,
String icone,
) {
return TextFormField(
controller: c,
autofocus: true,
obscureText: true,
keyboardType: TextInputType.emailAddress,
style: TextStyle(color: Colors.white, fontSize: 16),
decoration: InputDecoration(
labelText: label,
**prefixIcon: Icon(Icons.'$icone'),**
hintText: hintText,
labelStyle: TextStyle(color: Colors.white),
),
);
}
如果您查看 Icon
s,您会发现它们只是字体的索引。所以,实际上图标并没有 'names' 它们有数字。
这是一个随机示例:
static const IconData checklist = IconData(0xe15b, fontFamily: 'MaterialIcons');
因此,与其尝试使用名称 'checklist' 实例化图标,不如使用其编号 0xe15b
.
你打算在哪里存储图标的名称(数据库?后端?),而不是存储一个数字,你的代码变成:
prefixIcon: Icon(IconData(icone, fontFamily: 'MaterialIcons')),
我传递了一个iconData参数
Widget buildTextFormField(
String label,
TextEditingController c,
String hintText,
**IconData icone,**
) {
return TextFormField(
controller: c,
keyboardType: TextInputType.emailAddress,
style: TextStyle(color: Colors.white, fontSize: 16),
decoration: InputDecoration(
labelText: label,
**prefixIcon: Icon(icone),**
hintText: hintText,
labelStyle: TextStyle(color: Colors.white),
),
);
}