Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.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
Android 放射自显影环中的颤振_Android_Flutter_Flutter Widget - Fatal编程技术网

Android 放射自显影环中的颤振

Android 放射自显影环中的颤振,android,flutter,flutter-widget,Android,Flutter,Flutter Widget,我的RadioListile有问题它不工作 我正在尝试创建一个RadioListile列表,以使用for循环从firebase中填充我的数据。当我单击它时,它确实会收到操作,但单击它时我无法选中该框 我已经试着解决它好几天了。有人能帮忙吗 这是我的代码: import 'package:eatwell/src/helpers/changescreen.dart'; import 'package:eatwell/src/model/itemmodel.dart'; import 'package

我的RadioListile有问题它不工作

我正在尝试创建一个RadioListile列表,以使用for循环从firebase中填充我的数据。当我单击它时,它确实会收到操作,但单击它时我无法选中该框

我已经试着解决它好几天了。有人能帮忙吗

这是我的代码:

import 'package:eatwell/src/helpers/changescreen.dart';
import 'package:eatwell/src/model/itemmodel.dart';
import 'package:eatwell/src/model/platemodel.dart';
import 'package:eatwell/src/pages/cartPage.dart';
import 'package:eatwell/src/provider/customplate.dart';
import 'package:eatwell/src/provider/item.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

class CustomDetail extends StatefulWidget {
  final CustomModel custom;

  const CustomDetail({Key key, this.custom}) : super(key: key);

  @override
  _CustomDetail createState() => _CustomDetail();
}

class _CustomDetail extends State<CustomDetail> {
  @override
  Widget build(BuildContext context) {
    final carbsProvider = Provider.of<CarbsProvider>(context);
    var mycarb = 1;
    return Scaffold(
        appBar: AppBar(
          title: Text(
            "Preset Meal",
            style: TextStyle(
              fontSize: 30.0,
              fontWeight: FontWeight.bold,
              color: Colors.black,
              fontFamily: 'DancingScript',
            ),
          ),
          centerTitle: true,
          actions: <Widget>[
            Padding(
              padding: const EdgeInsets.only(bottom: 8.0, right: 8.0),
              child: Stack(
                children: <Widget>[
                  IconButton(
                      icon: Icon(
                        Icons.shopping_bag_outlined,
                        size: 40,
                      ),
                      onPressed: () {
                        changeScreen(context, Cart());
                      }),
                  Positioned(
                    right: 3,
                    bottom: 0,
                    child: Container(
                      decoration: BoxDecoration(
                          color: Colors.white,
                          borderRadius: BorderRadius.circular(10),
                          boxShadow: [
                            BoxShadow(
                                color: Colors.grey,
                                offset: Offset(2, 3),
                                blurRadius: 3)
                          ]),
                      child: Padding(
                        padding: const EdgeInsets.only(left: 4, right: 4),
                        child: Text(
                          "2",
                          style: TextStyle(
                              color: Colors.red,
                              fontSize: 16.0,
                              fontWeight: FontWeight.bold),
                        ),
                      ),
                    ),
                  )
                ],
              ),
            )
          ],
        ),
        body: SafeArea(
          child: ListView(
            children: <Widget>[
              Padding(
                padding: const EdgeInsets.only(
                    left: 20.0, right: 20, bottom: 10, top: 30),
                child: Container(
                  decoration: BoxDecoration(
                    color: Colors.cyanAccent,
                    borderRadius: BorderRadius.circular(100),
                  ),
                  height: 300,
                  alignment: Alignment.center,
                  child: Image(
                    image: NetworkImage(widget.custom.image),
                    height: 300,
                    width: 300,
                  ),
                ),
              ),
              Text(
                widget.custom.name,
                style: TextStyle(fontSize: 30.0, fontWeight: FontWeight.bold),
                textAlign: TextAlign.center,
              ),
              Text(
                ("RM ${widget.custom.price}"),
                style: TextStyle(fontSize: 30.0, fontWeight: FontWeight.bold),
                textAlign: TextAlign.center,
              ),

              for (var i = 0; i < widget.custom.carbnum; i++)
                Column(
                  children: <Widget>[
                    ListTile(
                      title: Text("Choose Your Carbohydrates"),
                    ),
                    for (var i = 0; i < carbsProvider.carbs.length; i++)
                      RadioListTile(
                        title: Text(carbsProvider.carbs[i].name),
                        value: i,
                        onChanged: (var v) {
                          print("object");
                          mycarb = v;
                        },
                        groupValue: mycarb,
                      )
                  ],
                ),

              // for (var i = 0; i < widget.custom.fooditems.length; i++)
              //   Text(
              //     widget.custom.fooditems[i],
              //     style: TextStyle(fontSize: 30.0, fontWeight: FontWeight.bold),
              //   )
            ],
          ),
        ));
  }
}
导入“包:eatwell/src/helpers/changescreen.dart”; 导入“package:eatwell/src/model/itemmodel.dart”; 导入“package:eatwell/src/model/platemodel.dart”; 导入“package:eatwell/src/pages/cartPage.dart”; 导入“package:eatwell/src/provider/customplate.dart”; 导入“package:eatwell/src/provider/item.dart”; 进口“包装:颤振/材料.省道”; 导入“包:provider/provider.dart”; 类CustomDetail扩展了StatefulWidget{ 最终定制模型定制; const CustomDetail({Key-Key,this.custom}):super(Key:Key); @凌驾 _CustomDetail createState()=>\u CustomDetail(); } 类_CustomDetail扩展状态{ @凌驾 小部件构建(构建上下文){ 最终carbsProvider=提供者(上下文); var-mycarb=1; 返回脚手架( appBar:appBar( 标题:正文( “预置餐”, 样式:TextStyle( 字体大小:30.0, fontWeight:fontWeight.bold, 颜色:颜色,黑色, fontFamily:“DancingScript”, ), ), 标题:对, 行动:[ 填充物( 填充:仅限常量边集(底部:8.0,右侧:8.0), 子:堆栈( 儿童:[ 图标按钮( 图标:图标( 图标。购物袋概述, 尺码:40, ), 已按下:(){ 更改屏幕(上下文,购物车()); }), 定位( 右:3,, 底部:0, 子:容器( 装饰:盒子装饰( 颜色:颜色,白色, 边界半径:边界半径。圆形(10), boxShadow:[ 箱形阴影( 颜色:颜色。灰色, 偏移量:偏移量(2,3), (半径:3) ]), 孩子:填充( 填充:仅限常量边集(左:4,右:4), 子:文本( "2", 样式:TextStyle( 颜色:颜色,红色, 字体大小:16.0, fontWeight:fontWeight.bold), ), ), ), ) ], ), ) ], ), 正文:安全区( 子:ListView( 儿童:[ 填充物( 填充:仅限常量边设置( 左:20.0,右:20,下:10,上:30), 子:容器( 装饰:盒子装饰( 颜色:Colors.cyancent, 边界半径:边界半径。圆形(100), ), 身高:300, 对齐:对齐.center, 孩子:图像( image:NetworkImage(widget.custom.image), 身高:300, 宽度:300, ), ), ), 正文( widget.custom.name, 样式:TextStyle(fontSize:30.0,fontWeight:fontWeight.bold), textAlign:textAlign.center, ), 正文( ($RM{widget.custom.price}”), 样式:TextStyle(fontSize:30.0,fontWeight:fontWeight.bold), textAlign:textAlign.center, ), 对于(var i=0;i在setState中包装您的一次更改。 就像

onChanged: (var v) {
  setState((){
    print("object");
    mycarb = v;
  });
},
根据文件:

调用setState会通知框架此对象的内部状态已发生更改,可能会影响此子树中的用户界面,从而导致框架为此状态对象安排生成


在RadioDistile小部件的onChanged方法中使用setState方法,正如Abdul Qadir所回答的那样。

您的列表中是否填写了firestore数据,问题是在您单击列表时出现的?您是否有任何错误日志?我的RadioTile列表中充满了firestore的数据,但我不知道如何设置RadioTile列表的groupvalue,因为当我单击RadioTile列表数据的n项时,它将标记为selectedI solve它已经解决了,变量应该在构建内容之外声明,谢谢您的帮助我已经解决了它