flutterDropDownButton
render widget of selectedDropDownItem
。但是,我希望在选定后以不同于DropDownItem
的方式进行渲染。
基本上,DropDownItem
有图标和文本,但按钮只显示图标。
最佳答案
如何在下拉时呈现不同的DropdownButton
项?
我通过DropdownMenuItem
找到了一个解决方案。对于关闭和关闭状态,分别执行其build()
。您可以使用上下文来确定它是关闭状态还是关闭状态。例如,您可以检查祖先状态小部件。
我使用类似于这个伪代码片段的代码:
DropdownButton<String>(
value: selectedItem.id,
items: items.map((item) {
return DropdownMenuItem<String>(
value: item.id,
child: Builder(builder: (BuildContext context) {
final bool isDropDown = context.ancestorStateOfType(TypeMatcher<PageState>()) == null;
if (isDropDown) {
return Text(item.name);
} else {
return Text(item.name, style: TextStyle(color: Colors.red));
}
},)
);
}).toList(),
);
其中items是id-name实例的列表,pagestate是我自己的有状态小部件的状态。