gpt4 book ai didi

flutter - searchable_dropdown 不适用于类列表

转载 作者:行者123 更新时间:2023-12-04 14:16:16 27 4
gpt4 key购买 nike

我使用 searchable_dropdown 1.1.0 包实现了一个 flutter 下拉菜单,,我用我的类(class)列表进行了测试,我发现搜索 TextField 框不适用于我的类(class)列表。 当我在列表中的两个字符串/整数中搜索一个值时,我希望我的下拉搜索框能够工作。

例如:我希望当我输入数字 1 或键 1 时它应该显示我搜索的项目

我想知道如何解决这个问题?感谢帮助

这是我的代码。

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

get_list(){
List<KeyValueModel> datas = [
KeyValueModel(key: "Key 1", value: "Value 1"),
KeyValueModel(key: "Key 2", value: "Value 2"),
KeyValueModel(key: "Key 3", value: "Value 3"),
KeyValueModel(key: "Key 4", value: "Value 4"),
KeyValueModel(key: "Key 5", value: "Value 5"),
];
return datas;
}
//Create a Model class to hold key-value pair data
class KeyValueModel {
String key;
String value;

KeyValueModel({this.key, this.value});
}


class Test extends StatefulWidget {
@override
TestState createState() {
return new TestState();
}
}
class TestState extends State<Test> {

List listan = get_list();

KeyValueModel _selectedValue = KeyValueModel(key: "0", value: "value");

@override
Widget build(BuildContext context) {


return Scaffold(
appBar: AppBar(
title: Text('Key value Pair - DropdownButton'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
SearchableDropdown<KeyValueModel>(
isCaseSensitiveSearch: true,
items: listan
.map((data) => DropdownMenuItem<KeyValueModel>(
child: Text(data.key),
value: data,
)).toList(),
onChanged: (KeyValueModel value) {
setState(() => _selectedValue = value);
},
hint: Text('Select Key'),
),
SizedBox(
height: 25.0,
),
Text(_selectedValue.value),
],
),
),
);
}
}


最佳答案

这是包中的一些代码。

...

if(widget.isCaseSensitiveSearch){
isContains = item.value.toString().contains(keyword);
}
else{
isContains = item.value.toString().toLowerCase().contains(keyword.toLowerCase());
}

...

它在 value 上调用 toString()。在您的情况下, valueKeyValueModel 的类型,并且没有重写的 toString() 方法。所以它返回 Instance of KeyValueModel 而不是 Key 1 之类的。

这是在调用 toString() 方法时返回 key 的类。

class KeyValueModel {
String key;
String value;

KeyValueModel({this.key, this.value});

@override
String toString() {
return key;
}
}

关于flutter - searchable_dropdown 不适用于类列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60025636/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com