Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/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 ListView生成器don';不要在规定的时间内改变_Flutter_Dart - Fatal编程技术网

Flutter ListView生成器don';不要在规定的时间内改变

Flutter ListView生成器don';不要在规定的时间内改变,flutter,dart,Flutter,Dart,我有一个搜索方法,它可以从地图中检测元素,并将主题放在列表变量中,列表视图生成器从中获取元素。 当我在文本字段中插入我的单词时,列表视图生成器不会更改她的语句,直到我关闭键盘,然后才能看到更改。 我想查看我当前搜索的元素 这是我的代码: _showDialog(){ var searchList = []; int _manyOfWidgetShow = 0; double heightOfListView = 0; double higNumber(){

我有一个搜索方法,它可以从地图中检测元素,并将主题放在列表变量中,列表视图生成器从中获取元素。 当我在文本字段中插入我的单词时,列表视图生成器不会更改她的语句,直到我关闭键盘,然后才能看到更改。 我想查看我当前搜索的元素

这是我的代码:

  _showDialog(){
    var searchList = [];
    int _manyOfWidgetShow = 0;
    double heightOfListView = 0;
   double higNumber(){
     double _number;
      if(_manyOfWidgetShow == 0){
          _number = 0.25;
      }
      else if(_manyOfWidgetShow == 1){
          _number = 0.3;

      }else if(_manyOfWidgetShow == 2){
          _number = 0.5;
      }else if(_manyOfWidgetShow == 3){
        _number = 0.6;
      }
      return _number;
    }
    void _showSearchReturn(String query){
      List _items = [];
      if(query.isNotEmpty){
       testList.forEach( (element){
         if(element["name"].toString().toLowerCase().startsWith(query) && _items.length < 3){
             _items.add(element);
         }
         else if(query.length >= 2 && element["name"].toString().toLowerCase().contains(query) && _items.length < 3){
           _items.add(element);
         }
       }
       );
       setState(() {
         _manyOfWidgetShow = _items.length;
         if(_manyOfWidgetShow != 0) {
           heightOfListView = _manyOfWidgetShow * 50.0;
         }else{
           heightOfListView = 0;
         }
         searchList.clear();
         searchList.addAll(_items);
       });
     }else{
       setState(() {
         _manyOfWidgetShow = _items.length;
         if(_manyOfWidgetShow != 0){
           heightOfListView = _manyOfWidgetShow * 50.0;
         }else{
           heightOfListView = 0;
         }
         searchList.clear();
       });
     }
    }
    showDialog(
        context: context,
      builder: (BuildContext context){
          var _size = MediaQuery.of(context).size;
          return Container(

            child: Card(
              shape: RoundedRectangleBorder(
                  borderRadius: BorderRadius.circular(30)
              ),
              child: Container(
                height: _size.height * higNumber(),
                child: Column(
                  children: <Widget>[
                    Card(
                        margin: EdgeInsets.only(top:20,bottom: 15),
                        elevation: 4,
                        shape: RoundedRectangleBorder(
                            borderRadius: BorderRadius.circular(15)
                        ),
                        child: Container(
                          alignment: Alignment.center,
                          padding: EdgeInsets.only(top: 15,bottom: 18),
                          child: TextField(
                            onChanged: (value){
                              _showSearchReturn(value);
                            },
                            scrollPadding: EdgeInsets.all(20),
                            autocorrect: false,
                            decoration: InputDecoration.collapsed(
                              hintText: "Movie name",
                            ),
                            style: TextStyle(
                                fontSize: 20
                            ),
                            strutStyle: StrutStyle(
                                fontWeight: FontWeight.bold,
                                height: 1.5
                            ),
                            controller: searchText ,
                            cursorWidth: 2,
                            cursorColor: Color(0xff54C4A2),
                            textAlign: TextAlign.center,
                          ),
                        )
                    ),
                    Container(
                        height: heightOfListView,
                        child: ListView.builder(
                            itemCount: searchList.length,
                            shrinkWrap: true,
                            itemBuilder:(context,index){
                              return ItemInfo(searchList[index]["name"],searchList[index]["id"]);
                            }
                        )
                    ),
                    Expanded(
                        child: Container(
                          alignment: Alignment.bottomLeft,
                          child: IconButton(icon: Icon(Icons.arrow_back_ios,color: Colors.black54,),
                            onPressed: (){
                            },

                          ),
                        )
                    )
                  ],
                ),
              ),
            )
          );
      }
    );
  }
\u showDialog(){
var searchList=[];
int_manyOfWidgetShow=0;
双高度ListView=0;
双重数字(){
双倍数字;
如果(_manyOfWidgetShow==0){
_数字=0.25;
}
else if(_manyOfWidgetShow==1){
_数字=0.3;
}否则如果(_manyOfWidgetShow==2){
_数字=0.5;
}否则如果(_manyOfWidgetShow==3){
_数字=0.6;
}
返回(u)号;;
}
void\u showSearchReturn(字符串查询){
列表_项=[];
if(query.isNotEmpty){
testList.forEach((元素){
if(元素[“name”].toString().toLowerCase().StartWith(查询)&&&U items.length<3){
_添加(元素);
}
else if(query.length>=2&&element[“name”].toString().toLowerCase()包含(query)&&U项。长度<3){
_添加(元素);
}
}
);
设置状态(){
_manyOfWidgetShow=\u items.length;
如果(_manyOfWidgetShow!=0){
HightofListView=_manyOfWidgetShow*50.0;
}否则{
HightOfListView=0;
}
searchList.clear();
searchList.addAll(_项);
});
}否则{
设置状态(){
_manyOfWidgetShow=\u items.length;
如果(_manyOfWidgetShow!=0){
HightofListView=_manyOfWidgetShow*50.0;
}否则{
HightOfListView=0;
}
searchList.clear();
});
}
}
显示对话框(
上下文:上下文,
生成器:(BuildContext上下文){
var _size=MediaQuery.of(context).size;
返回容器(
孩子:卡片(
形状:圆形矩形边框(
边界半径:边界半径。圆形(30)
),
子:容器(
高度:_size.height*higNumber(),
子:列(
儿童:[
卡片(
页边距:仅限边集(顶部:20,底部:15),
标高:4,
形状:圆形矩形边框(
边界半径:边界半径。圆形(15)
),
子:容器(
对齐:对齐.center,
填充:仅限边缘组(顶部:15,底部:18),
孩子:TextField(
一旦更改:(值){
_showSearchReturn(值);
},
滚动填充:边缘集。全部(20),
自动更正:错误,
装饰:输入装饰(
hintText:“电影名称”,
),
样式:TextStyle(
尺寸:20
),
strutStyle:strutStyle(
fontWeight:fontWeight.bold,
身高:1.5
),
控制器:searchText,
游标宽度:2,
光标颜色:颜色(0xff54C4A2),
textAlign:textAlign.center,
),
)
),
容器(
高度:ListView的高度,
子项:ListView.builder(
itemCount:searchList.length,
收缩膜:对,
itemBuilder:(上下文,索引){
returniteminfo(searchList[index][“name”]、searchList[index][“id”]);
}
)
),
扩大(
子:容器(
对齐:对齐。左下角,
子:图标按钮(图标:图标(图标。箭头返回,颜色:Colors.black54,),
已按下:(){
},
),
)
)
],
),
),
)
);
}
);
}
您可以在Flatter中使用showSearch()方法。这里有一个演示showSearch()方法,将我的应用程序转到另一个页面,我想在showSearch()中搜索