11import 'package:flutter/material.dart' ;
2- import 'package:searchable_listview/resources/arrays.dart' ;
32import 'package:searchable_listview/searchable_listview.dart' ;
43
54void main () {
@@ -48,6 +47,7 @@ class _ExampleAppState extends State<ExampleApp> {
4847 Actor (age: 66 , name: 'Denzel' , lastName: 'Washington' ),
4948 Actor (age: 49 , name: 'Ben' , lastName: 'Affleck' ),
5049 ];
50+ List <Actor > filteredActors = [];
5151
5252 final Map <String , List <Actor >> mapOfActors = {
5353 'test 1' : [
@@ -64,6 +64,12 @@ class _ExampleAppState extends State<ExampleApp> {
6464
6565 final TextEditingController searchTextController = TextEditingController ();
6666
67+ @override
68+ void initState () {
69+ super .initState ();
70+ filteredActors = actors;
71+ }
72+
6773 @override
6874 Widget build (BuildContext context) {
6975 return SizedBox (
@@ -74,7 +80,7 @@ class _ExampleAppState extends State<ExampleApp> {
7480 Expanded (
7581 child: Padding (
7682 padding: const EdgeInsets .all (15 ),
77- child: renderSimpleSearchableList (),
83+ child: renderAsynchSearchableListview (),
7884 ),
7985 ),
8086 Align (
@@ -102,26 +108,52 @@ class _ExampleAppState extends State<ExampleApp> {
102108 return SearchableList <Actor >(
103109 textAlignVertical: TextAlignVertical .center,
104110 searchFieldHeight: 40 ,
105- searchTextPosition: SearchTextPosition .bottom,
106111 lazyLoadingEnabled: false ,
112+ separatorBuilder: (context, index) {
113+ return Container (
114+ height: 40 ,
115+ );
116+ },
107117 sortPredicate: (a, b) => a.age.compareTo (b.age),
108118 itemBuilder: (item) {
109- return ActorItem (actor: item);
119+ int index = filteredActors.indexOf (item);
120+ if (index == 0 ) {
121+ return Container (
122+ color: Colors .red,
123+ height: 10 ,
124+ width: 300 ,
125+ );
126+ } else {
127+ return ActorItem (actor: filteredActors[index - 1 ]);
128+ }
110129 },
130+ emptyWidget: Column (
131+ children: [
132+ Container (
133+ color: Colors .red,
134+ height: 10 ,
135+ width: 300 ,
136+ ),
137+ const Column (
138+ children: [Icon (Icons .error), Text ('No Data found' )],
139+ )
140+ ],
141+ ),
111142 filter: (query) {
112- return actors
143+ filteredActors = actors
113144 .where ((element) =>
114145 element.name.toLowerCase ().contains (query.toLowerCase ()) ||
115146 element.lastName.toLowerCase ().contains (query.toLowerCase ()))
116147 .toList ();
148+ return filteredActors;
117149 },
118150 initialList: actors,
119151 );
120152 }
121153
122154 Widget renderSimpleSearchableList () {
123155 return SearchableList <Actor >(
124- seperatorBuilder : (context, index) {
156+ separatorBuilder : (context, index) {
125157 return const Divider ();
126158 },
127159 textStyle: const TextStyle (fontSize: 25 ),
@@ -196,8 +228,10 @@ class _ExampleAppState extends State<ExampleApp> {
196228 element.lastName.contains (query))
197229 .toList ();
198230 },
199- seperatorBuilder: (context, index) {
200- return const Divider ();
231+ separatorBuilder: (context, index) {
232+ return Container (
233+ height: 30 ,
234+ );
201235 },
202236 textStyle: const TextStyle (fontSize: 25 ),
203237 emptyWidget: const EmptyView (),
0 commit comments