【问题标题】:Flutter PopupMenu change icon colorFlutter PopupMenu 更改图标颜色
【发布时间】:2019-03-19 11:39:57
【问题描述】:

如何更改 PopupMenuButton 上的图标颜色,我已将 Theme 与 iconTheme 一起使用,但它不会影响 CheckedPopupMenuItem 或 PopupMenuItem 上的图标。

Scaffold(
      backgroundColor: Colors.transparent,
      appBar: AppBar(
        elevation: 0.0,
        backgroundColor: Colors.transparent,
        actions: <Widget>[
          Theme(
            data: Theme.of(context).copyWith(
              cardColor: Colors.indigo,
              iconTheme: IconThemeData(color: Colors.white),
            ),
            child: ListTileTheme(
              iconColor: Colors.white,
              child: PopupMenuButton<String>(
                onSelected: _showCheckedMenuSelections,
                itemBuilder: (BuildContext context) => <PopupMenuEntry<String>>[
                  CheckedPopupMenuItem<String>(
                    value: _checkedValue1,
                    checked: _showRoles,
                    child: Text(_checkedValue1, style: Theme.of(context).textTheme.body1),
                  ),
                  const PopupMenuDivider(),
                  PopupMenuItem<String>(
                    value: 'Get Link',
                    child: ListTile(
                      leading: Icon(Icons.phonelink),
                      title: Text('Get link', style: Theme.of(context).textTheme.body1),
                    ),
                  ),
                ],
              ),
            ),
          ),
        ],
      ),

结果如下所示:

【问题讨论】:

    标签: colors dart flutter popup icons


    【解决方案1】:

    您可以将Icon 小部件包装在IconButton 中,它提供color 属性来更改图标颜色。示例代码如下:

    value: 'Get Link',
        child: ListTile(
        leading: IconButton(
          icon: Icon(Icons.phonelink,
          color: Colors.blue,),
          onPressed: () {},
        ),
        title: Text('Get link', style: Theme.of(context).textTheme.body1),
        ),
    

    【讨论】:

    • 是的,我在 PopupMenuItem 上使用它,但是 CheckedPopupMenu 的图标不能更改。
    • 只是一个字符串和bool值,可以参考here
    【解决方案2】:

    就这样做

     appBar: AppBar(
              iconTheme: IconThemeData(color: Colors.white, size: 10.0),
              elevation: 4.0,
              backgroundColor: Colors.black,
    )
    

    【讨论】:

      猜你喜欢
      • 2021-08-07
      • 2021-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-15
      • 1970-01-01
      • 2019-06-23
      相关资源
      最近更新 更多