Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.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 颤振无法获取ontap函数以更改boolian列表_Flutter - Fatal编程技术网

Flutter 颤振无法获取ontap函数以更改boolian列表

Flutter 颤振无法获取ontap函数以更改boolian列表,flutter,Flutter,伙计们,我一直在尝试让每个按钮改变bool列表,当列表在某个索引中变为真时,容器变得可见,但失败很大。问题是出于某种原因,我的手势按钮不想改变boolian列表,但改变任何其他整数列表都没有问题 我已经试着让这件简单的事情工作了几天,任何帮助都是好的 我的代码: import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; class Filter

伙计们,我一直在尝试让每个按钮改变bool列表,当列表在某个索引中变为真时,容器变得可见,但失败很大。问题是出于某种原因,我的手势按钮不想改变boolian列表,但改变任何其他整数列表都没有问题

我已经试着让这件简单的事情工作了几天,任何帮助都是好的

我的代码:

import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';

class FilterRow extends StatefulWidget {
  @override
  FilterRow({Key key, this.title}) : super(key: key);

  final String title;
  _FilterRowState createState() => _FilterRowState();
}

class _FilterRowState extends State<FilterRow> {
  int _filterIndex = 0;
  List<bool> list = [
    false,
    false,
    false,
    false,
  ];

  List<IconData> _filter = [FontAwesomeIcons.filter];
  List<IconData> _filtericons = [
    FontAwesomeIcons.clock,
    FontAwesomeIcons.moneyBill,
    FontAwesomeIcons.globe,
  ];
  List<IconData> _uppericons = [
    FontAwesomeIcons.cog,
    FontAwesomeIcons.bookmark,
    FontAwesomeIcons.user,
  ];
  @override
  Widget build(BuildContext context) {
    return Row(children: <Widget>[
      SizedBox(
          width: 100.0,
          child: Container(
            height: 270.0,
            padding: EdgeInsets.only(
              left: 15,
            ),
            child: Column(children: <Widget>[
              Row(
                  mainAxisSize: MainAxisSize.min,
                  mainAxisAlignment: MainAxisAlignment.start,
                  children: <Widget>[
              ),
              Column(
                children: <Widget>[
                  GestureDetector(
                    behavior: HitTestBehavior.translucent,
                    onTap: () {
                      setState(() {
                        list[0] = false;
                        list[1] = true;
                        list[2] = false;
                        list[3] = false;
                      });
                    },
                    child: Container(
                      height: 60.0,
                      width: 60.0,
                      decoration: BoxDecoration(
                        color: Theme.of(context).accentColor,
                        borderRadius: BorderRadius.circular(30.0),
                      ),
                      child: Icon(_filtericons[0],
                          size: 25.0, color: Theme.of(context).primaryColor),
                    ),
                  ),
                    ),
                  ),
                ],
              )
            ]),
          )),
      Container(
        padding: EdgeInsets.only(left: 10),
        child: Column(
          children: <Widget>[
            Visibility(
                visible: false
                    ? list = [
                        false,
                        true,
                        false,
                        false,
                      ]
                    : true,
                child: Container(
                  height: 270.0,
                  width: 320.0,
                  decoration: BoxDecoration(
                    color: Theme.of(context).accentColor,
                    borderRadius: BorderRadius.circular(30.0),
                  ),
                )),
            Visibility(
                visible: false,
                child: Container(
                  height: 270.0,
                  width: 320.0,
                  decoration: BoxDecoration(
                    color: Theme.of(context).accentColor,
                    borderRadius: BorderRadius.circular(30.0),
                  ),
                )),
            Visibility(
                visible: false,
                child: Container(
                  height: 270.0,
                  width: 320.0,
                  decoration: BoxDecoration(
                    color: Theme.of(context).accentColor,
                    borderRadius: BorderRadius.circular(30.0),
                  ),
                )),
          ],
        ),
      )
    ]);
  }
}


导入“包装:颤振/材料.省道”;
导入“package:font_awesome_flatter/font_awesome_flatter.dart”;
类FilterRow扩展StatefulWidget{
@凌驾
FilterRow({Key-Key,this.title}):超级(Key:Key);
最后的字符串标题;
_FilterRowState createState()=>\u FilterRowState();
}
类_FilterRowState扩展状态{
int_filterIndex=0;
列表=[
假,,
假,,
假,,
假,,
];
列表_filter=[FontAwesomeIcons.filter];
列表_filtericons=[
FontAwesomeIcons.clock,
FontAwesomeIcons.moneyBill,
FontAwesomeIcons.globe,
];
列表_uppericons=[
FontAwesomeIcons.cog,
FontAwesomeIcons.bookmark,
FontAwesomeIcons.user,
];
@凌驾
小部件构建(构建上下文){
返回行(子项:[
大小盒子(
宽度:100.0,
子:容器(
身高:270.0,
填充:仅限边缘设置(
左:15,
),
子项:列(子项:[
划船(
mainAxisSize:mainAxisSize.min,
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
),
纵队(
儿童:[
手势检测器(
行为:HitTestBehavior.transparent,
onTap:(){
设置状态(){
列表[0]=false;
列表[1]=真;
列表[2]=假;
列表[3]=假;
});
},
子:容器(
身高:60.0,
宽度:60.0,
装饰:盒子装饰(
颜色:主题。背景。强调颜色,
边界半径:边界半径。圆形(30.0),
),
子:图标(_filtericons[0],
尺寸:25.0,颜色:主题。背景。原色),
),
),
),
),
],
)
]),
)),
容器(
填充:仅限边缘设置(左:10),
子:列(
儿童:[
可见度(
可见:假
?列表=[
假,,
是的,
假,,
假,,
]
:没错,
子:容器(
身高:270.0,
宽度:320.0,
装饰:盒子装饰(
颜色:主题。背景。强调颜色,
边界半径:边界半径。圆形(30.0),
),
)),
可见度(
可见:假,
子:容器(
身高:270.0,
宽度:320.0,
装饰:盒子装饰(
颜色:主题。背景。强调颜色,
边界半径:边界半径。圆形(30.0),
),
)),
可见度(
可见:假,
子:容器(
身高:270.0,
宽度:320.0,
装饰:盒子装饰(
颜色:主题。背景。强调颜色,
边界半径:边界半径。圆形(30.0),
),
)),
],
),
)
]);
}
}

将列表变量放入小部件函数中

Widget build(Context context) {

 List<bool> list = [
    false,
    false,
    false,
    false,
  ];

return // your code

}
小部件构建(上下文){ 列表=[ 假,, 假,, 假,, 假,, ]; 返回//您的代码 }
通过删除@override

修复了这个问题。我看不出你在任何地方都在使用
列表
来设置值。你为什么不只粘贴相关的代码呢?刚刚清理了代码,我实际上也在我的手势检测器的ontap函数中使用列表来更改值。我确实这样做了,但我的想法仍然是一样的,只是在我的visibility wid上获取我的
可见:false?列表=[false,true,false,false,]:true,
标记为死代码。