我要定制DropDownButton https://docs.flutter.io/flutter/material/DropdownButton-class.html,这样它就不会渲染内容DropdownItem https://api.flutter.dev/flutter/material/DropdownMenuItem-class.html。相反,它应该在从 DropDown 选择项目之前和之后呈现我的自定义布局/小部件。
简而言之,我想定制我的DropDownButton https://docs.flutter.io/flutter/material/DropdownButton-class.html.
Thanks,
如何渲染DropdownButton
放下时物品会有所不同吗?
我通过找到了解决方案DropdownMenuItem
. Its 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(),
);
Where items是一个列表id-name实例,以及页面状态是我自己的有状态小部件的状态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)