Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions lib/screens/custom_search_delegate.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
// ignore_for_file: file_names

import 'package:flutter/material.dart';

class CustomSearchDelegate extends SearchDelegate {
List<String> searchTerms = [
'Ram',
'lakshman',
'bharat',
'shatrughna',
'hanuman',
'sita',
'dashrath',
];
List<Widget> buildactions(BuildContext context) {
return [
IconButton(
icon: const Icon(Icons.clear),
onPressed: () {
query = ' ';
},
)
];
}

@override
Widget buildLeading(BuildContext context) {
return IconButton(
icon: const Icon(Icons.arrow_back),
onPressed: () {
close(context, null);
},
);
}

@override
Widget buildResults(BuildContext context) {
List<String> matchQuery = [];
for (var name in searchTerms) {
if (name.toLowerCase().contains(query.toLowerCase())) {
matchQuery.add(name);
}
}
return ListView.builder(
itemCount: matchQuery.length,
itemBuilder: (context, index) {
var result = matchQuery[index];
return ListTile(
title: Text(result),
);
});
}

@override
Widget buildSuggestions(BuildContext context) {
List<String> matchQuery = [];
for (var name in searchTerms) {
if (name.toLowerCase().contains(query.toLowerCase())) {
matchQuery.add(name);
}
}
return ListView.builder(
itemCount: matchQuery.length,
itemBuilder: (context, index) {
var result = matchQuery[index];
return ListTile(
title: Text(result),
);
});
}

@override
List<Widget>? buildActions(BuildContext context) {
// TODO: implement buildActions
}
}