Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.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
Ios 如何从数据库值创建cupertinoactionsheet_Ios_Flutter - Fatal编程技术网

Ios 如何从数据库值创建cupertinoactionsheet

Ios 如何从数据库值创建cupertinoactionsheet,ios,flutter,Ios,Flutter,我试图返回一个cupertinoactionsheet,以便在未来的构建器上使用它。这些值存储在本地 到目前为止,我仅设法检索cupertinoactionsheetactions 我试着把整张行动单都退回,但都失败了 我们的目标是让应用程序看起来尽可能的本土化。 这就是我不想使用任何材质小部件的原因 有什么答案吗 多谢各位 void _modalBottomSheetMenu() { showCupertinoModalPopup( context: context,

我试图返回一个cupertinoactionsheet,以便在未来的构建器上使用它。这些值存储在本地

到目前为止,我仅设法检索cupertinoactionsheetactions

我试着把整张行动单都退回,但都失败了

我们的目标是让应用程序看起来尽可能的本土化。 这就是我不想使用任何材质小部件的原因

有什么答案吗

多谢各位

void _modalBottomSheetMenu() {
    showCupertinoModalPopup(
        context: context,
        builder: (builder) {
          return new Container(
            height: 450.0,
            color: Color(0xFF737373), 

            child: new Container(
                decoration: new BoxDecoration(
                    color: CupertinoColors.white,
                    borderRadius: new BorderRadius.only(
                        topLeft: const Radius.circular(10.0),
                        topRight: const Radius.circular(10.0))),
                child: 
// some more code

                  new FutureBuilder(
                    future: plates,
                    builder: (BuildContext context, AsyncSnapshot snapshot) {
                      switch (snapshot.connectionState) {
                        case ConnectionState.none:

                        case ConnectionState.waiting:
                          return new Text('loading...');
                        default:
                          if (snapshot.hasError)
                            return new Text('Error: ${snapshot.error}');
                          else
                            return createListView(context, snapshot);
                      }
                    },
                  )
                ])),
          );
        });
  }


Widget createListView(BuildContext context, AsyncSnapshot snapshot) {
    List<String> values = snapshot.data;
    return new ListView.builder(
      scrollDirection: Axis.vertical,
      shrinkWrap: true,
      itemCount: values.length,
      itemBuilder: (BuildContext context, int index) {
        return new Column(
          children: <Widget>[
            new CupertinoActionSheetAction(
                //leading: new Icon(CupertinoIcons.directions_car),
                child: new Text(values[index]),
                onPressed: () => {
                      setState(() {
                        _carplate = values[index];
                      }),
                      Navigator.pop(context)
                    }),
          ],
        );
      },
    );
  }


void\u modalBottomSheetMenu(){
showcupbertinomodalpopup(
上下文:上下文,
建筑商:(建筑商){
退回新货柜(
高度:450.0,
颜色:颜色(0xFF737373),
子容器:新容器(
装饰:新盒子装饰(
颜色:铜色。白色,
borderRadius:仅限新的borderRadius(
左上角:常数半径。圆形(10.0),
右上角:常数半径。圆形(10.0)),
儿童:
//还有代码吗
新未来建设者(
未来:板块,
生成器:(BuildContext上下文,异步快照){
交换机(快照.连接状态){
案例连接状态。无:
案例连接状态。正在等待:
返回新文本('加载…');
违约:
if(snapshot.hasError)
返回新文本('Error:${snapshot.Error}');
其他的
返回createListView(上下文、快照);
}
},
)
])),
);
});
}
小部件createListView(构建上下文上下文,异步快照快照){
列表值=snapshot.data;
返回新的ListView.builder(
滚动方向:轴垂直,
收缩膜:对,
itemCount:values.length,
itemBuilder:(构建上下文,int索引){
返回新列(
儿童:[
新CupertinoActionAction(
//领先:新图标(CupertinoIcons.方向车),
子项:新文本(值[索引]),
按下:()=>{
设置状态(){
_carplate=值[指数];
}),
Navigator.pop(上下文)
}),
],
);
},
);
}

您应该在显示操作表之前检索值,然后在
createListView
中传递值,而不是在快照中传递值。大概是这样的:

void _modalBottomSheetMenu() async {
    List<String> values = await plates;
    showCupertinoModalPopup(
      context: context,
      builder: (builder) {
        return Container(
          height: 450.0,
          color: Color(0xFF737373),
          child: new Container(
            decoration: new BoxDecoration(
                color: CupertinoColors.white,
                borderRadius: new BorderRadius.only(
                    topLeft: const Radius.circular(10.0),
                    topRight: const Radius.circular(10.0))),
            child: createListView(context, values),
          ),
        );
      },
    );
  }


Widget createListView(BuildContext context, List<String> values) {
    return new ListView.builder(
      scrollDirection: Axis.vertical,
      shrinkWrap: true,
      itemCount: values.length,
      itemBuilder: (BuildContext context, int index) {
        return new Column(
          children: <Widget>[
            new CupertinoActionSheetAction(
                //leading: new Icon(CupertinoIcons.directions_car),
                child: new Text(values[index]),
                onPressed: () => {
                      setState(() {
                        _carplate = values[index];
                      }),
                      Navigator.pop(context)
                    }),
          ],
        );
      },
    );
  }
void\u modalBottomSheetMenu()异步{
列表值=等待板;
showcupbertinomodalpopup(
上下文:上下文,
建筑商:(建筑商){
返回容器(
高度:450.0,
颜色:颜色(0xFF737373),
子容器:新容器(
装饰:新盒子装饰(
颜色:铜色。白色,
borderRadius:仅限新的borderRadius(
左上角:常数半径。圆形(10.0),
右上角:常数半径。圆形(10.0)),
子级:createListView(上下文、值),
),
);
},
);
}
小部件createListView(构建上下文,列表值){
返回新的ListView.builder(
滚动方向:轴垂直,
收缩膜:对,
itemCount:values.length,
itemBuilder:(构建上下文,int索引){
返回新列(
儿童:[
新CupertinoActionAction(
//领先:新图标(CupertinoIcons.方向车),
子项:新文本(值[索引]),
按下:()=>{
设置状态(){
_carplate=值[指数];
}),
Navigator.pop(上下文)
}),
],
);
},
);
}
非常感谢 完整的代码是

Widget createListView(BuildContext context, List<String> values) {
    return Container(
        height: 300.0, 
        //width: 300.0, 
        child: new ListView.builder(
      scrollDirection: Axis.vertical,
      shrinkWrap: false,
      itemCount: values.length,
      itemBuilder: (BuildContext context, int index) {
        return new Column(
          children: <Widget> [
            new CupertinoActionSheetAction(
                child: new Text(values[index]),
                onPressed: () => {
                  setState(() {
                    _carplate = values[index];
                  }),
                  Navigator.pop(context)
                }),

        ]);
      },
    ));
  }

  void _modalBottomSheetMenu() async {
    List<String> values = await plates;

    showCupertinoModalPopup(
      context: context,
      builder: (BuildContext context) => CupertinoActionSheet(
        title: const Text('Choose Options'),
        message: const Text('Your options are '),
        actions: <Widget>[
          createListView(context, values)

        ],
        cancelButton: CupertinoActionSheetAction(
          child: const Text('Cancel'),
          isDestructiveAction: true,

          onPressed: () {
            Navigator.pop(context, 'Cancel');
          },
        ),
      ),
    );
Widget createListView(BuildContext上下文,列表值){
返回容器(
高度:300.0,
//宽度:300.0,
子项:新建ListView.builder(
滚动方向:轴垂直,
收缩膜:假,
itemCount:values.length,
itemBuilder:(构建上下文,int索引){
返回新列(
儿童:[
新CupertinoActionAction(
子项:新文本(值[索引]),
按下:()=>{
设置状态(){
_carplate=值[指数];
}),
Navigator.pop(上下文)
}),
]);
},
));
}
void _modalBottomSheetMenu()异步{
列表值=等待板;
showcupbertinomodalpopup(
上下文:上下文,
生成器:(BuildContext上下文)=>CupertinaActionSheet(
标题:常量文本(“选择选项”),
消息:const Text('您的选项为'),
行动:[
createListView(上下文、值)
],
取消按钮:CupertinoActionSheetAction(
子项:常量文本(“取消”),
IsDestructionAction:是的,
已按下:(){
pop(上下文“取消”);
},
),
),
);

尽管上述代码有效,但请注意,在一个容器中嵌入所有CupertinoActionSheetAction将导致在点击其中任何一个时突出显示所有CupertinoActionSheetAction

以下是颤振公司的官方文件:

Future<void> _handleClickMe() async {
  return showCupertinoModalPopup<void>(
    context: context,
    builder: (BuildContext context) {
      return CupertinoActionSheet(
        title: Text('Favorite Dessert'),
        message: Text('Please select the best dessert from the options below.'),
        actions: <Widget>[
          CupertinoActionSheetAction(
            child: Text('Profiteroles'),
            onPressed: () { /** */ },
          ),
          CupertinoActionSheetAction(
            child: Text('Cannolis'),
            onPressed: () { /** */ },
          ),
          CupertinoActionSheetAction(
            child: Text('Trifie'),
            onPressed: () { /** */ },
          ),
        ],
        cancelButton: CupertinoActionSheetAction(
          isDefaultAction: true,
          child: Text('Cancel'),
          onPressed: () { /** */ },
        ),
      );
    },
  );
}
void _showActionSheetIOS(context, Customer customer) {
    showCupertinoModalPopup(
      context: context,
      builder: (BuildContext context) => CupertinoActionSheet(
        title: Text('Choose an option for ${customer.name}'),
         message: const Text('Your options are '),
          actions: _yourLstCustomerObjs
              .map((item) => CupertinoActionSheetAction(
                    child: Text(item.option),
                    onPressed: () {
                      Navigator.pop(context);
                      _selectItem(item);
                    },
                  ))
              .toList(),
          cancelButton: CupertinoActionSheetAction(
            child: const Text('Cancel'),
            isDefaultAction: true,
            onPressed: () {
              Navigator.pop(context, 'Cancel');
            },
          )),
    );
  }