IconData не передается в экземпляр класса в качестве параметра - PullRequest
0 голосов
/ 28 мая 2020

Итак, у меня определен следующий класс:

    import 'package:flutter/material.dart';

class ItemHiddenMenu extends StatelessWidget {
  /// name of the menu item
  final String name;

  /// callback to recibe action click in item
  final Function onTap;

  final Color colorLineSelected;

  /// Base style of the text-item.
  final TextStyle baseStyle;

  /// style to apply to text when item is selected
  final TextStyle selectedStyle;

  final bool selected;

  final IconData icon;

  ItemHiddenMenu({
    Key key,
    this.name,
    this.selected = false,
    this.onTap,
    this.colorLineSelected = Colors.blue,
    this.baseStyle,
    this.selectedStyle,
    this.icon,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      width: double.infinity,
      margin: EdgeInsets.only(bottom: 15.0),
      child: InkWell(
        onTap: onTap,
        child: Row(
          children: <Widget>[
            ClipRRect(
              borderRadius: BorderRadius.only(
                  topRight: Radius.circular(4.0),
                  bottomRight: Radius.circular(4.0)),
              child: Container(
                height: 40.0,
                color: selected ? colorLineSelected : Colors.transparent,
                width: 5.0,
              ),
            ),
            Expanded(
              child: Container(
                margin: EdgeInsets.only(left: 20.0),
                child: Row(
                  crossAxisAlignment: CrossAxisAlignment.center,
                  children: [
                    Icon(icon),
                    SizedBox(
                      width: 15,
                    ),
                    Text(
                      name,
                      style: (this.baseStyle ??
                              TextStyle(color: Colors.grey, fontSize: 25.0))
                          .merge(this.selected
                              ? this.selectedStyle ??
                                  TextStyle(color: Colors.white)
                              : null),
                    ),
                  ],
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

Я пытаюсь передать некоторые IconData через параметр icon, например:

new ItemHiddenMenu(
          icon: Icons.dashboard,
          name: "Investments by category",
          baseStyle:
              TextStyle(color: Colors.white.withOpacity(0.8), fontSize: 20.0),
          colorLineSelected: Colors.teal,
        )

Код запускается нормально, но значок не виден. В целях тестирования я попытался определить icon внутри самого класса, и значок был успешно отображен, но тогда все экземпляры будут иметь один и тот же значок, а это не то, что я хочу.

Я также пробовал используя IconData из других источников, таких как внешние пакеты, чтобы исключить какие-либо проблемы со стандартными значками, но это не дало результата. Спасибо :)

...