【问题标题】:Flutter create PopupMenuButton with a Text and an Icon instead of single IconFlutter 使用 Text 和 Icon 而不是单个 Icon 创建 PopupMenuButton
【发布时间】:2021-04-26 03:22:06
【问题描述】:

我正在创建一个 PopUpMenuButton 让用户选择应用程序的语言,并且我想显示当前所选语言的文本作为打开菜单的按钮。
所以是这样的:

我目前只有一个图标作为打开带有工具提示的菜单的按钮:

BlocBuilder<LanguageBloc, LanguageState>(builder: (context, state) {
  return PopupMenuButton(
    offset: const Offset(0, 40),
    elevation: 2,
    iconSize: 18,
    icon: Icon(
      Icons.g_translate,
      color: Theme.of(context).primaryColor,
    ),
    itemBuilder: (BuildContext context) => [
      PopupMenuItem(
          value: "en",
          child: Row(children: [
            Text("English",
                style: Theme.of(context).textTheme.bodyText2),
            const SizedBox(width: 15),
            Icon(
              Icons.check_circle,
              size: 18,
              color: Colors.black.withOpacity(0.60),
            )
          ])),
      PopupMenuItem(
          value: "de",
          child: Text("Deutsch",
              style: Theme.of(context).textTheme.bodyText2)),
    ],
  );
})

我可以在图标前面放一个文本,但点击文本不会打开Popupenu,所以我需要一个允许在点击文本或图标时打开菜单的实现。

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    您可以将TextButton.icon 用作孩子:

     PopupMenuButton(
        offset: const Offset(0, 40),
        elevation: 2,
        child: TextButton.icon(
                    label: Text(
                     'Your label'
                      ),
                    ),
                    icon: Icon(
                     Icons.g_translate,
                     color: Theme.of(context).primaryColor,
                       ),
                    onPressed: () {
                    //do logic, or keep it empty
                    },
                  ),
    

    【讨论】:

      猜你喜欢
      • 2021-10-23
      • 2011-08-21
      • 2020-01-27
      • 2013-09-11
      • 1970-01-01
      • 2011-10-31
      • 2021-05-26
      • 2015-03-10
      • 1970-01-01
      相关资源
      最近更新 更多