Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 将弧形导航栏选项卡上的按钮颜色更改为“主”_Flutter_Dart - Fatal编程技术网

Flutter 将弧形导航栏选项卡上的按钮颜色更改为“主”

Flutter 将弧形导航栏选项卡上的按钮颜色更改为“主”,flutter,dart,Flutter,Dart,我正在使用CurvedNavigationBar作为我的底部导航栏。点击后,我想将此黑色图标颜色更改为原色。但当它没有点击时,我只希望钛是黑色。我怎么做? 我尝试更改CurvedNavigationBar的最后三个属性,但没有得到所需的输出 代码: 最终底部导航栏=曲线导航栏( 项目:[ SvgPicture.asset( “assets/images/hand shake.svg”, key:key('sessionpage'), 高度:ScreenUtil().setHeight(26),

我正在使用CurvedNavigationBar作为我的底部导航栏。点击后,我想将此黑色图标颜色更改为原色。但当它没有点击时,我只希望钛是黑色。我怎么做? 我尝试更改CurvedNavigationBar的最后三个属性,但没有得到所需的输出

代码:

最终底部导航栏=曲线导航栏(
项目:[
SvgPicture.asset(
“assets/images/hand shake.svg”,
key:key('sessionpage'),
高度:ScreenUtil().setHeight(26),
宽度:ScreenUtil().setWidth(26),
颜色:颜色,黑色,
),
SvgPicture.asset(
“assets/images/home.svg”,
高度:ScreenUtil().setHeight(26),
键:键(“FeedsPage”),
宽度:ScreenUtil().setWidth(26),
颜色:颜色,黑色,
),
卡片(
标高:5,
形状:
RoundedRectangleBorder(borderRadius:borderRadius.circular(50)),
孩子:圆环星(
背景颜色:Colors.white,
半径:24,
子:图标(
图标。编辑,
颜色:颜色,黑色,
尺码:35,
),
),
),
影像资产(
“assets/images/booking_icon.png”,
高度:ScreenUtil().setHeight(26),
宽度:ScreenUtil().setWidth(26),
颜色:颜色,黑色,
),
StreamBuilder(
流:usersRef
.document(CurrentUser().CurrentUser.databaseID)
.collection(“警报”)
.snapshots(),
生成器:(上下文,快照){
交换机(快照.连接状态){
案例连接状态。无:
案例连接状态。正在等待:
返回堆栈(
儿童:[
SvgPicture.asset(
“assets/images/noti.svg”,
高度:ScreenUtil().setHeight(26),
宽度:ScreenUtil().setWidth(26),
颜色:颜色,黑色,
),
圆形(
半径:2,
)
],
);
违约:
List rev1=snapshot.data.documents.toList();
列表res1=[];
对于(第1版中的var i){
如果(i.data['seen']==false)res1.add(i.documentID);
}
返回堆栈(
儿童:[
SvgPicture.asset(
“assets/images/noti.svg”,
高度:ScreenUtil().setHeight(26),
宽度:ScreenUtil().setWidth(26),
颜色:颜色,黑色,
),
res1.length==0
?圆形(
半径:2,
)
:CircleAvatar(
半径:8,
背景颜色:Colors.white,
子:文本(
res1.length.toString(),
样式:TextStyle(字体大小:10),
),
),
],
);
}
//子项:SvgPicture.asset(
//“assets/images/noti.svg”,
//高度:ScreenUtil().setHeight(28),
//宽度:ScreenUtil().setWidth(28),
//颜色:白色,
// ),
}),
],
onTap:onTabTapped,
索引:_currentIndex,
背景颜色:Colors.white,
按钮背景颜色:白色,
颜色:颜色,白色,
身高:60,
);
返回脚手架(底部导航栏:底部导航栏,主体:返回主体());
}
}

我不知道这个
CurvedNavigationBar
小部件,但是,查看您的代码,我可以假设您已经在
\u currentIndex
变量中选择了索引

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

CurvedNavigationBar(
项目:[
SvgPicture.asset(
“assets/images/hand shake.svg”,
key:key('sessionpage'),
高度:ScreenUtil().setHeight(26),
宽度:ScreenUtil().setWidth(26),
颜色:_currentIndex==0?颜色。红色:颜色。黑色,
),
//其他项目,增加索引验证(例如==1、==2等)
],
//其他属性。。。
);

只需将
颜色。红色
更改为您想要的颜色。

我不知道这个
曲线导航栏
小部件,但是,查看您的代码,我可以假设您已经在
\u currentIndex
变量中选择了索引

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

CurvedNavigationBar(
项目:[
SvgPicture.asset(
“assets/images/hand shake.svg”,
key:key('sessionpage'),
高度:ScreenUtil().setHeight(26),
宽度:ScreenUtil().setWidth(26),
颜色:_currentIndex==0?颜色。红色:颜色。黑色,
),
//其他项目,增加索引验证(例如==1、==2等)
],
//其他属性。。。
);

只需更改
颜色。红色
为您想要的颜色。

有效,非常感谢。你能告诉我如何在通知栏上添加黑色边框或阴影吗?很好,谢谢。您还可以告诉我如何在通知栏上方添加黑色边框或阴影吗?
 final bottomNavBar = CurvedNavigationBar(
      items: [
        SvgPicture.asset(
          'assets/images/hand-shake.svg',
          key: Key('SessionsPage'),
          height: ScreenUtil().setHeight(26),
          width: ScreenUtil().setWidth(26),
          color: Colors.black,
        ),
        SvgPicture.asset(
          'assets/images/home.svg',
          height: ScreenUtil().setHeight(26),
          key: Key("FeedsPage"),
          width: ScreenUtil().setWidth(26),
          color: Colors.black,
        ),
        Card(
          elevation: 5,
          shape:
              RoundedRectangleBorder(borderRadius: BorderRadius.circular(50)),
          child: CircleAvatar(
            backgroundColor: Colors.white,
            radius: 24,
            child: Icon(
              Icons.edit,
              color: Colors.black,
              size: 35,
            ),
          ),
        ),
        Image.asset(
          'assets/images/booking_icon.png',
          height: ScreenUtil().setHeight(26),
          width: ScreenUtil().setWidth(26),
          color: Colors.black,
        ),
        StreamBuilder(
            stream: usersRef
                .document(CurrentUser().currentUser.databaseID)
                .collection('Alerts')
                .snapshots(),
            builder: (context, snapshot) {
              switch (snapshot.connectionState) {
                case ConnectionState.none:
                case ConnectionState.waiting:
                  return Stack(
                    children: <Widget>[
                      SvgPicture.asset(
                        'assets/images/noti.svg',
                        height: ScreenUtil().setHeight(26),
                        width: ScreenUtil().setWidth(26),
                        color: Colors.black,
                      ),
                      CircleAvatar(
                        radius: 2,
                      )
                    ],
                  );

                default:
                  List rev1 = snapshot.data.documents.toList();
                  List res1 = [];

                  for (var i in rev1) {
                    if (i.data['seen'] == false) res1.add(i.documentID);
                  }
                  return Stack(
                    children: <Widget>[
                      SvgPicture.asset(
                        'assets/images/noti.svg',
                        height: ScreenUtil().setHeight(26),
                        width: ScreenUtil().setWidth(26),
                        color: Colors.black,
                      ),
                      res1.length == 0
                          ? CircleAvatar(
                              radius: 2,
                            )
                          : CircleAvatar(
                              radius: 8,
                              backgroundColor: Colors.white,
                              child: Text(
                                res1.length.toString(),
                                style: TextStyle(fontSize: 10),
                              ),
                            ),
                    ],
                  );
              }

              //   child: SvgPicture.asset(
              //     'assets/images/noti.svg',
              //     height: ScreenUtil().setHeight(28),
              //     width: ScreenUtil().setWidth(28),
              //     color: whiteColor,
              // ),
            }),
      ],
      onTap: onTabTapped,
      index: _currentIndex,
      backgroundColor: Colors.white,
      buttonBackgroundColor: whiteColor,
      color: Colors.white,
      height: 60,
    );
    return Scaffold(bottomNavigationBar: bottomNavBar, body: returnBody());
  }
}