【发布时间】:2021-02-05 11:39:28
【问题描述】:
在我的应用程序 Flutter 中,我有一个带有此主体的小部件
body: ListView.builder(
itemCount: data.length,
itemBuilder: (BuildContext context, int index) {
return Column(
children: <Widget>[
ListTile(
title: Text(data[index]['name']),
leading: Icon(Icons.arrow_forward_ios),
onTap: () => {
Navigator.pushNamed(context, data[index]['routes'])
// Your Logout method
},
//title: Text(data[index]['name']),
)
],
);
},
),
可变数据依赖于本地 json 文件。 json文件是这样的:
[
{
"name" : "name",
"routes" : "/routes1"
},
{
"name" : "name2",
"routes" : "/routes2"
},
]
对于更新 json 文件,我使用此代码
Future<String> loadJsonData() async {
var jsonText =
await rootBundle.loadString('assets/file.json');
setState(() {
data = json.decode(jsonText);
});
print(jsonText);
}
@override
// ignore: must_call_super
void initState() {
this.loadJsonData();
}
使用此代码,我有一个列表,可以让我看到名称并通过“路线”将我发送到另一个页面。
我需要添加一个搜索栏,它允许我在输入名称时只显示相似的名称。 例如,如果 json 文件中的列表名称是: 马丁 麦克风 詹姆斯
当我开始输入“M”时,我会看到一个列表 马丁 迈克。
有什么建议吗?
谢谢
【问题讨论】:
-
搜索和列表视图必须通过任何状态管理进行通信。你如何管理你的状态。 bloc 库、提供程序或其他什么或什么都没有?
-
@Error280MonkeyFound 我不知道如何开始做搜索栏,只是因为我不知道如何让他们“交流”
-
我不在比赛前。我会尝试在 2-3 小时内发布。