DropDownMenuItem 中的多个文本
Posted
技术标签:
【中文标题】DropDownMenuItem 中的多个文本【英文标题】:Multiple text in DropDownMenuItem 【发布时间】:2021-07-17 07:02:36 【问题描述】:我一直在尝试构建下拉菜单项,如下图所示。
我需要在“语言级别...”文本下方的图像中开发扩展的下拉菜单,下拉菜单项中有 2 个文本。我将分享 DropDownMenuItem 的代码。
DropdownButton<String>(
underline: Container(),
isExpanded: true,
isDense: true,
value: selected,
icon: Icon(Icons.arrow_downward),
iconSize: 24,
elevation: 16,
style: TextStyle(color: Colors.black),
onChanged: (value)
selectedCallback(value);
setState(()
selected = value;
);
,
items: list.map<DropdownMenuItem<String>>((e)
return DropdownMenuItem<String>(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center,
children: [Text(e)],
),
value: e,
);
).toList(),
selectedItemBuilder: (context) => list
.map((e) => Text(
e,
style: TextStyle(color: Colors.black),
))
.toList(),
)
请帮助我。 谢谢
【问题讨论】:
【参考方案1】:我找到了解决办法
DropdownButton<LanguageModel>(
underline: Container(),
isExpanded: true,
isDense: true,
value: selected,
icon: Icon(Icons.arrow_downward),
iconSize: 24,
elevation: 16,
style: TextStyle(color: Colors.black),
onChanged: (value)
selectedCallback(value);
setState(()
selected = value;
);
,
onTap: ()
setState(()
check = true;
);
,
selectedItemBuilder: (ctxt)
return list.map<DropdownMenuItem<LanguageModel>>((e)
return DropdownMenuItem<LanguageModel>(
child: Text(e.level),
value: e,
);
).toList();
,
items: list.map((e)
return DropdownMenuItem(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(e.level,style: TextStyle(fontWeight: FontWeight.w400),),
Text(e.description,style: TextStyle(color: Color.fromARGB(100, 166, 166, 166).withOpacity(1.0),fontSize: 12),),
Divider(color: Colors.grey,thickness: 1,)
],
),
value: e,
);
).toList(),
);
【讨论】:
以上是关于DropDownMenuItem 中的多个文本的主要内容,如果未能解决你的问题,请参考以下文章
Flutter:如何使用 ListTile 作为子项创建 DropdownMenuItem
DropDownButton 和 DropDownMenuItem 的不同样式
颤振:类型 'List<dynamic>' 不是类型 'List<DropdownMenuItem<String>>' 的子类型
我们如何在下拉菜单中更改 Flutter DropdownMenuItem 的宽度/填充?