【问题标题】:How to set divider and divider color with PopupMenu Item in flutter?如何在 Flutter 中使用 PopupMenu Item 设置分隔符和分隔符颜色?
【发布时间】:2021-09-22 16:04:28
【问题描述】:

在这个简单的实现代码中,我将一些 PopupMenuButton 项目添加到 AppBar 动作参数中,现在我想设置具有默认值的 PopupMenuDivider 颜色颜色。

【问题讨论】:

    标签: flutter


    【解决方案1】:

    您可以使用 Theme 类非常轻松地做到这一点,您可以使用它来更改图标颜色、文本颜色和 PopupMenuDivider 颜色。

    同样,您可以使用 PopupMenuDivider 在 PopupMenuItem 的 Divider 上轻松执行此操作。

    appBar: AppBar(
        title: Text("PopUpMenu Flutter"),
        centerTitle: true,
        actions: [
          Theme(
            data: Theme.of(context).copyWith(
              dividerTheme: DividerThemeData(
                color: Colors.black,
              ),
              iconTheme: IconThemeData(color: Colors.white),
              textTheme: TextTheme().apply(bodyColor: Colors.white),
            ),
            child: PopupMenuButton<int>(
              color: Colors.indigo,
              //onSelected: (item) => onSelected(context, item),
              itemBuilder: (context) => [
                PopupMenuItem<int>(
                  value: 0,
                  child: Text('Settings'),
                ),
                PopupMenuDivider(),
                PopupMenuItem<int>(
                  value: 1,
                  child: Text('Share'),
                ),
                PopupMenuDivider(),
                PopupMenuItem<int>(
                  value: 2,
                  child: Row(
                    children: [
                      Icon(Icons.logout),
                      const SizedBox(width: 8),
                      Text('Sign Out'),
                    ],
                  ),
                ),
              ],
            ),
          ),
        ],
      ),
    

    【讨论】:

    • 非常感谢,
    • 我想要的只是这段代码,而你提到了一切。
    • 不客气,祝你好运
    【解决方案2】:

    您可以使用PopupMenuItem child 并分配Column 喜欢

     PopupMenuItem<WhyFarther>(
                  value: WhyFarther.harder,
                  child: Column(
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: [
                      Text('Working a lot harder'),
                      Divider(
                        color: Colors.grey,
                      )
                    ],
                  ),
                ),
    
    

    【讨论】:

    • 这种方式我试过了,但是不能再分了
    猜你喜欢
    • 2016-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    • 2016-10-26
    相关资源
    最近更新 更多