flutter - 如何更改 Flutter 底部导航栏中的 SVG 图标?

标签 flutter icons flutter-layout flutter-dependencies

我试图在点击时更改我的 SVG 图标颜色。我试过 selectedColor 但图标没有改变颜色。所以我尝试使用快捷方式 if...else 语句,但我仍然没有改变颜色。

代码如下:

bottomNavigationBar: BottomNavigationBar(
        type: BottomNavigationBarType.fixed,
        items: <BottomNavigationBarItem>[
          BottomNavigationBarItem(
              icon: SvgPicture.asset('assets/dashboard-outline.svg', width: 25),
              label: 'Dashboard'
          ),
          BottomNavigationBarItem(
            icon: SvgPicture.asset('assets/tank-outline.svg', color: Colors.black54, width: 30),
            label: 'Tanks',
          ),
          BottomNavigationBarItem(
              icon: SvgPicture.asset('assets/activity-outline.svg', width: 18),
              label: 'Activity'
          ),
          BottomNavigationBarItem(
              icon: SvgPicture.asset('assets/account-outline.svg', width: 20),
              label: 'Account'
          ),
        ],
        currentIndex: _index,
        onTap: _onItemTapped,
        selectedItemColor: Color.fromRGBO(0,99,183,1)
      ),

我有一个不同的 SVG 图片图标文件,可以在点击时更改它。

这是我尝试的代码:

bool onSelected = true;

  Widget build(BuildContext context) {
    return Scaffold(
      body: _myPages[_index],

      bottomNavigationBar: BottomNavigationBar(
        type: BottomNavigationBarType.fixed,
        items: <BottomNavigationBarItem>[
          BottomNavigationBarItem(
              icon: SvgPicture.asset(onSelected == false ? 'assets/dashboard-outline.svg' : 'assets/dashboard-fill.svg', width: 25),
              label: 'Dashboard'
          ),

如有任何帮助,我们将不胜感激。

最佳答案

您只需更改您的项目并验证此属性以定义正确的颜色:

 SvgPicture.asset(
 'assets/dashboard-outline.svg', 
  width: 25), 
  color: _currentIndex == 0 ? Colors.red : Colors.black,

关于flutter - 如何更改 Flutter 底部导航栏中的 SVG 图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65914067/

相关文章:

internationalization - 是否有一个与 ISO-3166 国家代码相对应的良好旗帜图标包?

flutter - 中心行 child 和右对齐

flutter - 当我们依赖应用程序状态(例如登录)时,在 Flutter 中导航的最佳方法是什么?

flutter - 如果我没有添加 .obs,如何在 GetxController 中将ever() 与 Flutter getx 变量一起使用

java - JButton 如何实现它的图标?

iphone - 应用商店的浏览屏幕上显示的图标大小应该是多少?

flutter - 使用 ListView 时出现错误使用 ParentDataWidget 错误

Flutter - 如何在另一个类上显示/隐藏小部件

android - 如何为 android 构建 flutter 应用程序?

dart - 如何从某些特定 route 删除持久的底部导航栏?