如何在抖动中使用图像而不是图标?

Mis*_*tyD 10 flutter

我目前正在做这样的事情

new Tab(icon: new Icon(Icons.arrow_forward), text: "Browse"),
Run Code Online (Sandbox Code Playgroud)

但是我想使用图像作为图标。我使用获得图像

new Image.asset("assets/img/logo.png"),
Run Code Online (Sandbox Code Playgroud)

我的问题是如何在上面显示的选项卡中将该图像用作图标?

小智 25

ImageIcon widget 是 Fl​​utter 中最适合使用图像作为图标的 widget。您可以使用其属性图像来分配您自己的图像。

ImageIcon(
     AssetImage("images/icon.png"),
     color: Colors.red,
     size: 24,
),
Run Code Online (Sandbox Code Playgroud)

  • 这在 BottomNavigationBar 上很有用,其中图标颜色在激活或不激活时应自动更改。 (2认同)

Rob*_*nha 19

根据文档的Tab图标属性,请询问一个小部件,以便您也可以像这样传递或也可以传递任何其他小部件

new Tab(icon: new Image.asset("assets/img/logo.png"), text: "Browse"),
Run Code Online (Sandbox Code Playgroud)

  • 有没有一种方法可以设置图标的样式和高度@RobinSinha (2认同)

Cop*_*oad 7

大多数时候你会发现底层icon属性是 a Widget,因此你可以直接将你的替换IconImage.asseta widthheightfit根据你的需要:

Image.asset(
  'assets/images/foo.png',
  width: 44,
  height: 44,
  fit: BoxFit.cover,
)
Run Code Online (Sandbox Code Playgroud)

示例(在a中TabBar

TabBar(
  tabs: [
    Tab(
      text: 'Icon',
      icon: Icon(Icons.call), //    <-- Icon
    ),
    Tab(
      text: 'Image',
      icon: Image.asset( //        <-- Image
        'assets/images/foo.png',
        height: 44,
        fit: BoxFit.cover,
      ),
    ),
  ],
)
Run Code Online (Sandbox Code Playgroud)