如何在flutter中为弹出菜单的每一项着色?

问题描述 投票:0回答:1

我想给每个容器颜色。 我尝试将其包装在容器中,然后分配颜色,但它并没有为整个项目容器着色。我尝试了所有可能的方法,但它不起作用。 enter image description here

PopupMenuButton<String>(
  itemBuilder: (BuildContext context) {
    return <PopupMenuEntry<String>>[
      PopupMenuItem<String>(
        value: 'option1',
        child: ListTile(
          leading: Icon(Icons.delete),
          title: Text('Delete'),
        ),
      ),
      PopupMenuDivider(),
      PopupMenuItem<String>(
        value: 'option2',
        child: ListTile(
          leading: Icon(Icons.edit),
          title: Text('Edit'),
        ),
      ),
      PopupMenuItem<String>(
        value: 'option3',
        child: ListTile(
          leading: Icon(Icons.share),
          title: Text('Share'),
        ),
      ),
    ];
  },
  onSelected: (String value) {
    // Handle the selected option
    switch (value) {
      case 'option1':
        // Perform delete operation
        break;
      case 'option2':
        // Perform edit operation
        break;
      case 'option3':
        // Perform share operation
        break;
    }
  },
)

];
flutter popup popupmenu
1个回答
0
投票

实现您的目的的一种方法是用

PopupMenuItem
帖子包裹每个
Container
的子级,您可以设置该
color
Container
属性。比如:

PopupMenuButton<String>(
  itemBuilder: (BuildContext context) {
    return <PopupMenuEntry<String>>[
      PopupMenuItem<String>(
        value: 'option1',
        child: Container( // <---- Notice this
          color: Colors.red, // Set the color here
          child: ListTile(
            leading: Icon(Icons.delete),
            title: Text('Delete'),
          ),
        ),
      ),
      // Similarly for others...

DARTPAD 演示

© www.soinside.com 2019 - 2024. All rights reserved.