Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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 如何在API颤振数据上实现if语句_Flutter_Dart - Fatal编程技术网

Flutter 如何在API颤振数据上实现if语句

Flutter 如何在API颤振数据上实现if语句,flutter,dart,Flutter,Dart,我有一个来自API的响应,其中包含一些数据。其中一个主题是地位。状态可以是两个值(传输或正常)。如果只是传输,我想在屏幕上显示状态值。 我创建了如下传输小部件: Widget build(BuildContext context) { return SafeArea( minimum: const EdgeInsets.only( top: 20.0, right: 5.0, left: 5.0, bottom: 10.0), ch

我有一个来自API的响应,其中包含一些数据。其中一个主题是地位。状态可以是两个值(传输或正常)。如果只是传输,我想在屏幕上显示状态值。 我创建了如下传输小部件:

Widget build(BuildContext context) {
    return SafeArea(
        minimum: const EdgeInsets.only(
            top: 20.0, right: 5.0, left: 5.0, bottom: 10.0),
        child: Center(
            child: Scaffold(
                backgroundColor: Color(0xFFF6F7F8),
                body: Stack(
                  children: [
                    Container(
                      child: SingleChildScrollView(
                        child: Column(
                          mainAxisAlignment: MainAxisAlignment.start,
                          children: [
                            Row(
                              mainAxisAlignment: MainAxisAlignment.start,
                              children: [
                                Container(
                                  padding: EdgeInsets.all(10),
                                  child: ElevatedButton.icon(
                                    style: ElevatedButton.styleFrom(
                                        primary: KBlue,
                                        shape: RoundedRectangleBorder(
                                            borderRadius:
                                                BorderRadius.circular(30))),
                                    onPressed: () {
                                      showDialog(
                                        context: context,
                                        builder: (BuildContext context) =>
                                            _addNewBox(context),
                                      );
                                    },
                                    label: Text(
                                      'Ajouter un nouveau box',
                                      style: TextStyle(color: Colors.white),
                                    ),
                                    icon: Icon(
                                      CommunityMaterialIcons.plus,
                                      color: Colors.white,
                                    ),
                                  ),
                                ),
                              ],
                            ),
                            FutureBuilder<UserBox>(
                                future: boxApi.fetchBoxes(),
                                builder: (context, snapshot) {
                                  switch (snapshot.connectionState) {
                                    case ConnectionState.none:
                                      return Text('no connection');
                                    case ConnectionState.active:
                                    case ConnectionState.waiting:
                                      return Center(
                                        child: CircularProgressIndicator(),
                                      );
                                      break;
                                    case ConnectionState.done:
                                      if (snapshot.hasError) {
                                        return Text('No Boxes');
                                      } else {
                                        if (snapshot.hasData) {
                                          var userbox = snapshot.data;

                                          return Column(
                                              children: List.generate(
                                                  userbox.boxes.length,
                                                  (index) {
                                            final box = userbox.boxes[index];

                                            final status = (box.status);

                                            return Card(
                                                child: Column(
                                              mainAxisSize: MainAxisSize.min,
                                              children: [
                                                transfering(status),
                                            
                                                Padding(
                                                    padding: EdgeInsets.only(
                                                      left: 10,
                                                      right: 10,
                                                    ),
                                                    child: ExpansionTile(
                                                      tilePadding:
                                                          EdgeInsets.only(
                                                              left: 10),
                                                      title: Text(
                                                        '${box.boxName}',
                                                        style: TextStyle(
                                                            fontSize: 18,
                                                            fontWeight:
                                                                FontWeight
                                                                    .w500),
                                                      ),

      Widget transfering(status) {
        print(status);
        if (status != 'normal') {
          return Transform.translate(
            offset: const Offset(-60.0, 15.0),
            child: Text(
              "$status",
              style: TextStyle(
                  //   color: Colors.white,
                  fontSize: 10,
                  fontWeight: FontWeight.normal),
            ),
          );
        }
        return status;
      }
小部件构建(构建上下文){
返回安全区(
最小值:仅限常量边设置(
顶部:20.0,右侧:5.0,左侧:5.0,底部:10.0),
儿童:中心(
孩子:脚手架(
背景颜色:颜色(0xFFF6F7F8),
主体:堆栈(
儿童:[
容器(
子:SingleChildScrollView(
子:列(
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
划船(
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
容器(
填充:边缘设置。全部(10),
子项:ElevatedButton.icon(
样式:ElevatedButton.styleFrom(
小学:KBlue,
形状:圆形矩形边框(
边界半径:
边界半径。圆形(30)),
已按下:(){
显示对话框(
上下文:上下文,
生成器:(BuildContext上下文)=>
_addNewBox(上下文),
);
},
标签:文本(
“Ajun nouveau box”,
样式:TextStyle(颜色:Colors.white),
),
图标:图标(
社区材料管理员,
颜色:颜色,白色,
),
),
),
],
),
未来建设者(
future:boxApi.fetchbox(),
生成器:(上下文,快照){
交换机(快照.连接状态){
案例连接状态。无:
返回文本(“无连接”);
案例连接状态.active:
案例连接状态。正在等待:
返回中心(
子对象:CircularProgressIndicator(),
);
打破
案例连接状态。完成:
if(snapshot.hasError){
返回文本(“无框”);
}否则{
if(snapshot.hasData){
var userbox=snapshot.data;
返回列(
子项:List.generate(
userbox.box.length,
(索引){
final box=userbox.box[索引];
最终状态=(框状态);
回程卡(
子:列(
mainAxisSize:mainAxisSize.min,
儿童:[
转让(身份),
填充物(
填充:仅限边缘设置(
左:10,,
右:10,,
),
子文件:扩展文件(
瓷砖添加:
仅限EdgeInsets(
左:10),,
标题:正文(
“${box.boxName}”,
样式:TextStyle(
尺码:18,
容重:
容重
.w500),
),
小部件传输(状态){
打印(状态);
如果(状态!=“正常”){
返回Transform.translate(
偏移量:常数偏移量(-60.0,15.0),
子:文本(
“$status”,
样式:TextStyle(
//颜色:颜色,白色,
尺寸:10,
fontWeight:fontWeight.正常),
),
);
}
返回状态;
}
如何显示状态,如果
 return Card(
         child: Column(
         mainAxisSize: MainAxisSize.min,
        children: [
    if(status == 'Transfering') // add this
                                                
        transfering(status),