【发布时间】:2021-02-02 09:38:14
【问题描述】:
您好朋友,我在我的资产文件夹中的列表视图中检索 json 数据现在我想在我的颤振应用程序中实现搜索栏请帮助如何解决这个问题它在我的应用程序中非常重要我有 500+我的颤振应用程序中的单词,因此用户可以通过搜索栏搜索特定单词,任何可以帮助我的专家都在这里
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:dio/dio.dart';
import 'package:hebrew/dictinary/Meaning.dart';
class Dictionary extends StatefulWidget {
@override
_DictionaryState createState() => _DictionaryState();
}
class _DictionaryState extends State<Dictionary> {
List data=[];
List searchword=[];
Future<String>loadjsondata()async{
var jsonText=await rootBundle.loadString('assets/hebrew.json');
setState(() {
data=json.decode(jsonText);
});
print(jsonText);
}
@override
void initState() {
super.initState();
setState(() {
loadjsondata();
});
}
bool issearching=false;
void _filtwewords(value){
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title:!issearching ?Text('Hebrew Dictionary')
: TextField(
onChanged: (value) {
_filtwewords(value);
},
style: TextStyle(color: Colors.white),
decoration: InputDecoration(
icon: Icon(
Icons.search,
color: Colors.white,
),
hintText: "Search Words...",
hintStyle: TextStyle(color: Colors.white)),
),
actions:<Widget> [
this.issearching ? IconButton(
icon: Icon(Icons.cancel),
onPressed: () {
setState(() {
this.issearching = false;
});
},
)
: IconButton(
icon: Icon(Icons.search),
onPressed: () {
setState(() {
this.issearching =true;
});
},
)
],
),
body:Padding(
padding:EdgeInsets.all(5),
child: new ListView.separated(
separatorBuilder: (context, index) => Divider(
),
itemCount:data==null ? 0 :data.length,
itemBuilder: (BuildContext ctxt, int index) {
return Padding(
padding: EdgeInsets.all(4),
child: Column(
crossAxisAlignment:CrossAxisAlignment.stretch,
children: [
SizedBox(height: 10,),
GestureDetector(
onTap: () {
Navigator.push (context,MaterialPageRoute(builder: (context) =>Meaning(data[index]['eng'],data[index]['hebrew'],data[index]['urdu'])));
},
child: Text(data[index]['eng'],style: TextStyle(
fontSize: 15
),),
),
],
),
);
}
),
)
);
}
}
【问题讨论】:
-
我的问题是如何实现搜索词的搜索过滤器
-
我没有任何模型类
-
@pskink 我的问题实现搜索栏
-
@markanthony 您可以在应用栏上添加搜索栏,也可以使用列,然后在那个地方,文本字段和您的列表视图就可以了
-
@pskink 你的链接失效了