android - 如何在 Flutter 应用中的 PopupMenuItem 开头添加一个图标

标签 android flutter dart

我有一个 PopupMenuButton我想在每个 PopupMenuItem 的开头添加一个图标的小部件.我一直在试图找到一种方法来做到这一点,但我没有找到任何方法。

Below is the **main.dart** file.
import 'package:flutter/material.dart';
import 'package:practical_0/homepage.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
          primarySwatch: Colors.blue
      ),
      home: Homepage(),
    );
  }
}

以下是主页.dart 文件。这是我实现 PopupMenuButton 的地方。我希望图标出现在 PopupMenuItem 的开头在 text 之前.

import 'package:flutter/material.dart';

enum WhyFarther { harder, smarter, selfStarter, tradingCharter }

class Homepage extends StatelessWidget {

  final double heightFactor = 600/896;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        return new Card(
          new Row(
            children: <Widget>[
              PopupMenuButton<WhyFarther>(
               onSelected: (WhyFarther result) { setState(() { _selection = result; }); },
               itemBuilder: (BuildContext context) => <PopupMenuEntry<WhyFarther>>[
                const PopupMenuItem<WhyFarther>(
                  value: WhyFarther.harder,
                  child: Text('Working a lot harder'),
                ),
                const PopupMenuItem<WhyFarther>(
                  value: WhyFarther.smarter,
                  child: Text('Being a lot smarter'),
                ),
                const PopupMenuItem<WhyFarther>(
                  value: WhyFarther.selfStarter,
                  child: Text('Being a self-starter'),
                 ),
                 const PopupMenuItem<WhyFarther>(
                   value: WhyFarther.tradingCharter,
                   child: Text('Placed in charge of trading charter'),
                 ),
                ],
              ),
            ],
          )
        ),
      ),
    );
  }
}

最佳答案

我实际上建议使用这样的 ListTile:

              PopupMenuItem<WhyFarther>(
                value: WhyFarther.harder,
                child: ListTile(
                  leading: Icon(Icons.work),
                  title: Text('Working a lot harder'),
                ),
              )
查看 Flutter Gallery 以获取实时示例:https://gallery.flutter.dev/#/demo/menu

关于android - 如何在 Flutter 应用中的 PopupMenuItem 开头添加一个图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59598762/

相关文章:

android - 在 android studio 中找不到 proguard-project.txt

Flutter 在构建中显示 Snackbar

android - 如何在加载数据之前在flutter中显示进度条

Firebase Cloud Firestore 生成编译错误

java - 当我尝试从 SMS 消息(Android 光标)获取联系人或照片详细信息时,总是返回 NULL

android - onUpdate() 没有被小部件调用?

asp.net - Dart 可以与 ASP.Net 一起工作吗?

dart - 根据 flutter 中的动态数据扩展卡的高度

android - AndEngine中改变方向时如何防止游戏重启

在列中 flutter 不同的对齐方式