繁体   English   中英

如何制作颤振自定义下拉按钮?

[英]How to make flutter custom drop down button?

我想自定义DropDownButton ,这样它就不会呈现DropdownItem的内容。 相反,它应该在从 DropDown 中选择一个项目之前和之后呈现我的自定义布局/小部件。 简单来说,我想自定义我的DropDownButton

谢谢,

下拉时如何以不同方式呈现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是我自己的有状态小部件的状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM