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 的宽度/填充?

不同类中的多个 j2me commandAction 方法没有响应

在 Access 文本框中创建多个链接