Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/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_Flutter Dropdownbutton - Fatal编程技术网

Flutter 下拉按钮<;列表>;使用本地数据-仅在热重新加载后才在屏幕上列出项目

Flutter 下拉按钮<;列表>;使用本地数据-仅在热重新加载后才在屏幕上列出项目,flutter,flutter-dropdownbutton,Flutter,Flutter Dropdownbutton,我是个新手,不知道如何解决这个问题 我有一个带有等待方法的列表,但是我的屏幕并不等待列表加载到列表,只有当我使用热加载更新时,屏幕才会工作 我的异步方法 ListaRefeitorio? _selecione; List<ListaRefeitorio> _refeitorios = <ListaRefeitorio>[]; RefeitorioController controller = new RefeitorioController();

我是个新手,不知道如何解决这个问题

我有一个带有等待方法的列表,但是我的屏幕并不等待列表加载到列表,只有当我使用热加载更新时,屏幕才会工作

我的异步方法

ListaRefeitorio? _selecione;
    List<ListaRefeitorio> _refeitorios = <ListaRefeitorio>[];
    RefeitorioController controller = new RefeitorioController();
  
    @override
    void initState() {
      super.initState();
      _listarRefeitorios();
    }
ListaRefeitorio_雌雄酮;
列表_refeitorios=[];
RefeitorioController控制器=新的RefeitorioController();
@凌驾
void initState(){
super.initState();
_ListarerFeitorios();
}
我的屏幕

@override
      Widget build(BuildContext context) {
        return Scaffold(
            appBar: AppBarControleAcessoWidget("Refeitório"),
            body: Column(
              children: [
                SizedBox(height: 30),
                Container(
                  child: Center(
                    child: Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Container(
                        padding: EdgeInsets.only(left: 16, right: 16),
                        decoration: BoxDecoration(
                          border:
                              Border.all(color: AppColors.chartSecondary, width: 1),
                          borderRadius: BorderRadius.circular(15),
                        ),
                        child: DropdownButton<ListaRefeitorio>(
                          hint: Text("Selecione Refeitório"),
                          dropdownColor: AppColors.white,
                          icon: Icon(Icons.arrow_drop_down),
                          iconSize: 36,
                          isExpanded: true,
                          underline: SizedBox(),
                          style: TextStyle(
                            color: AppColors.black,
                            fontSize: 20,
                          ),
                          value: _selecione,
                          onChanged: (ListaRefeitorio? novoValor) {
                            setState(() {
                              _selecione = novoValor;
                            });
                          },
                          items: _refeitorios.map((ListaRefeitorio valueItem) {
                            return new DropdownMenuItem<ListaRefeitorio>(
                              value: valueItem,
                              child: new Text(valueItem.acessoPontoAcessoDescricao),
                            );
                          }).toList(),
                        ),
                      ),
                    ),
                  ),
                ),
                Container(),
                Expanded(
                  child: GridView.count(
                    crossAxisSpacing: 12,
                    mainAxisSpacing: 12,
                    crossAxisCount: 2,
                    children: [
                      Container(
                        child: SizedBox.expand(
                          child: FlatButton(
                            child: CardsWidget(
                              label: "Ler QR Code",
                              imagem: AppImages.scanQrCode,
                            ),
                            onPressed: () {
                              scanQRCode();
                            },
                          ),
                        ),
                      ),
                      Container(
                        child: SizedBox.expand(
                          child: FlatButton(
                            child: CardsWidget(
                                label: "Sincronizar Dados", imagem: AppImages.sync),
                            onPressed: () {
                              controller.sincronizar();
                              // RefeitorioService.listarRefeitorio();
                            },
                          ),
                        ),
                      ),
                      SizedBox(height: 30),
                      Text("Resultado"),
                      Text(QRCode),
                      Text(DataHora),
                      Text(_selecione.toString()),
                    ],
                  ),
                ),
              ],
            ));
      }
@覆盖
小部件构建(构建上下文){
返回脚手架(
appBar:AppBarControleAcessoWidget(“Refeitório”),
正文:专栏(
儿童:[
尺寸箱(高度:30),
容器(
儿童:中心(
孩子:填充(
填充:常数边集全部(8.0),
子:容器(
填充:仅限边设置(左:16,右:16),
装饰:盒子装饰(
边界:
Border.all(颜色:AppColors.chartSecondary,宽度:1),
边界半径:边界半径。圆形(15),
),
孩子:下拉按钮(
提示:文本(“Selecione Refeitório”),
dropdownColor:AppColors.white,
图标:图标(图标。箭头下拉),
iconSize:36,
是的,
下划线:SizedBox(),
样式:TextStyle(
颜色:AppColors.black,
尺寸:20,
),
值:_selecione,
变更后:(列表为Feitorio?novoValor){
设置状态(){
_selecione=novoValor;
});
},
项目:_refeitorios.map((ListaRefeitorio valueItem){
返回新的DropdownMenuItem(
值:valueItem,
子项:新文本(valueItem.acessoPontoAcessoDescricao),
);
}).toList(),
),
),
),
),
),
容器(),
扩大(
子项:GridView.count(
横轴间距:12,
平均间距:12,
交叉轴计数:2,
儿童:[
容器(
子项:SizedBox.expand(
孩子:扁平按钮(
孩子:CardsWidget(
标签:“Ler二维码”,
imagem:AppImages.scanQrCode,
),
已按下:(){
scanQRCode();
},
),
),
),
容器(
子项:SizedBox.expand(
孩子:扁平按钮(
孩子:CardsWidget(
标签:“Sincronizar Dados”,imagem:AppImages.sync),
已按下:(){
controller.sincronizar();
//RefeitorioService.listarRefeitorio();
},
),
),
),
尺寸箱(高度:30),
文本(“结果”),
文本(QRCode),
文本(DataHora),
文本(_selecione.toString()),
],
),
),
],
));
}
我尝试过使用futurebuilder,但我认为这不是我的问题

我不知道该怎么办了