如何在Flutter中定制可重用的Widget

rvpgvaaj  于 2022-12-05  发布在  Flutter
关注(0)|答案(2)|浏览(228)

我使用“SubCategoryTiles”小部件在整个应用程序。最初我使用相同的组图标,但现在我想使用不同的-不同的category_Icon无论我使用这个小部件。所以我想知道如何做到这一点。看到代码,也与我得到的错误图像。

class SubCategoryTiles extends StatelessWidget {
  const SubCategoryTiles({
    required this.titleText,
    required this.onTapHandler,
    required this.category_Icon,
  });

  final Widget titleText;
  final VoidCallback onTapHandler;
  final IconData category_Icon;
  @override
  Widget build(BuildContext context) {
    return ListTile(
      leading: const CircleAvatar(
        backgroundColor: Colors.white,
        child: category_Icon,
        
        // Icon(
        //   Icons.group,
        //   color: Colors.deepOrange,
        // ),
      ),
      title: titleText,
      trailing: const Icon(Icons.arrow_right),
      onTap: onTapHandler,
    );
  }
}

pu82cl6c

pu82cl6c1#

在图标小部件中 Package 您的category_Icon

child: Icon(category_Icon),

IconData不是小部件,但Icon是。

2eafrhcq

2eafrhcq2#

应该是这样的:

class SubCategoryTiles extends StatelessWidget {
  const SubCategoryTiles({
    required this.titleText,
    required this.onTapHandler,
    required this.category_Icon,
  });

  final Widget titleText;
  final VoidCallback onTapHandler;
  final IconData category_Icon;
  @override
  Widget build(BuildContext context) {
    return ListTile(
      leading: CircleAvatar(
        backgroundColor: Colors.white,
        child: Icon(
          category_Icon,
          color: Colors.deepOrange,
        ),

        // Icon(
        //   Icons.group,
        //   color: Colors.deepOrange,
        // ),
      ),
      title: titleText,
      trailing: const Icon(Icons.arrow_right),
      onTap: onTapHandler,
    );
  }
}

//这是您需要时应该加入的方式。
类别图标(_I):图标添加框,

相关问题