當我想搜索時,只有每個名字的第一個字母出現在我面前。例如,如果我鍵入字母 A,我看不到包含該字母的所有名稱。我不想只有名字的開頭。
該專案已與火力基地連接。
當我嘗試搜索時


class _ListServicesState extends State<ListServices> {
var searchText = '';
@override
Widget build(BuildContext context) {
final ref = FirebaseFirestore.instance.collection('Services');
Query<Map<String, dynamic>> query;
query = ref.orderBy('title').startAt(
[searchText],
).endAt([searchText '\uf8ff']);
return Scaffold(
appBar: AppBar(
title: TextField(
decoration: const InputDecoration(
iconColor: Color.fromARGB(255, 124, 43, 43),
hintText: 'Search...',
suffixIcon: Icon(Icons.search),
),
onChanged: (String value) {
setState(() {
searchText = value;
});
}),
centerTitle: true,
),
body: StreamBuilder(
stream: query.snapshots(),
builder: (_, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return const Center(
child: CircularProgressIndicator(),
); }
if (snapshot.data!.docs.isEmpty) {
return const Center(
child: Text('No data to be displayed.'),
);
}
var Services = snapshot.data!.docs;
return ListView.builder(
itemCount: Services.length,
itemBuilder: (ctx, index) {
final Service = Services[index].data() as Map<String, dynamic>;
final ServiceId = Services[index].id;
return Column(
children: [
ListTile(
title: Text(Service['title']),
subtitle: Text(Service['price']),
trailing: IconButton(
icon: Icon(
Icons.delete,
color: Color.fromARGB(255, 184, 16, 16),),
onPressed: () async {
await FirebaseFirestore.instance
.collection('Services')
.doc(ServiceId)
.delete(); }, ),
uj5u.com熱心網友回復:
試試下面的代碼:
class _ListServicesState extends State<ListServices> {
var searchText = '';
@override
Widget build(BuildContext context) {
final ref = FirebaseFirestore.instance.collection('Services');
Query<Map<String, dynamic>> query;
query = ref.orderBy('title');
return Scaffold(
appBar: AppBar(
title: TextField(
decoration: const InputDecoration(
iconColor: Color.fromARGB(255, 124, 43, 43),
hintText: 'Search...',
suffixIcon: Icon(Icons.search),
),
onChanged: (String value) {
setState(() {
searchText = value;
});
}),
centerTitle: true,
),
body: StreamBuilder(
stream: query.snapshots(),
builder: (_, AsyncSnapshot<QuerySnapshot> snapshot) {
final List Services = snapshot.data!.docs;
Services.removeWhere((element) {
final Map<String, dynamic> _element = element.data() as Map<String, dynamic>;
return _element['title'].contains(searchText) == false;
});
if (snapshot.connectionState == ConnectionState.waiting) {
return const Center(
child: CircularProgressIndicator(),
); }
if (Services.isEmpty) {
return const Center(
child: Text('No data to be displayed.'),
);
}
return ListView.builder(
itemCount: Services.length,
itemBuilder: (ctx, index) {
final Service = Services[index].data() as Map<String, dynamic>;
final ServiceId = Services[index].id;
return Column(
children: [
ListTile(
title: Text(Service['title']),
subtitle: Text(Service['price']),
trailing: IconButton(
icon: Icon(
Icons.delete,
color: Color.fromARGB(255, 184, 16, 16),),
onPressed: () async {
await FirebaseFirestore.instance
.collection('Services')
.doc(ServiceId)
.delete(); }, ),
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/524421.html
標籤:扑列表显示搜索
上一篇:ValueError:multilabel-indicatorformatisnotsupported,由于錯誤無法制作ROC曲線
