flutterDropDownButtonrender 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是我自己的有状态小部件的状态。

07-26 09:32
查看更多