I've created ListView.builder inside the FutureBuilder from my JSON (local) file. Also i've created a TextField widget to make it search bar of my ListView.builder. But I don't know how implement search bar syntax into my TextField and ListView.builder.
This is my FutureBuilder widget :
FutureBuilder(
future: _isInit ? fetchDoa(context) : Future(null),
builder: (context, _) {
if (doaList != null) {
return ListView.builder(
itemCount: doaList.length,
itemBuilder: (BuildContext context, int index) {
Doa doa = doaList[index];
return _itemList(index);
},
);
} else {
CircularProgressIndicator();
}
return CircularProgressIndicator();
}),
Here is _itemList(index) :
_itemList(index) {
Doa doa = doaList[index];
return Container(
margin: EdgeInsets.symmetric(horizontal: 24),
child: ListTile(
title: Text(doa.judul,
style: TextStyle(fontFamily: "Poppins", fontSize: 16)),
onTap: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (BuildContext context) => DetailDoa(doa: doa)));
},
trailing: Icon(
Icons.arrow_forward_ios_rounded,
color: Colors.teal,
)));
}
The search bar is separated from FutureBuilder because I used Stack in my project. And this is my TextField that I want to use as search bar :
_searchBar() {
return SingleChildScrollView(
child: Center(
child: Container(
margin: EdgeInsets.only(top: 60),
width: context.widthPct(.8),
height: context.widthPct(.8) / 6,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(34),
color: Colors.grey[200],
),
child: Container(
child: Theme(
data: new ThemeData(
primaryColor: Colors.grey[200],
),
child: TextField(
onSubmitted: (String str) {
str = str.toLowerCase();
setState(() {});
},
autofocus: false,
style:
TextStyle(color: Colors.grey[700], fontFamily: "Poppins"),
cursorColor: Colors.white,
decoration: InputDecoration(
suffixIcon: Icon(
Icons.search,
color: Colors.grey[700],
),
contentPadding: EdgeInsets.fromLTRB(24, 16, 24, 16),
hintText: "Cari doa dulu yuk",
hintStyle: TextStyle(
color: Colors.grey[700], fontFamily: "Poppins"),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(200),
borderSide: new BorderSide(color: Colors.grey[200]))),
),
))),
),
);
}
Here is the preview of my app :
Thank you very much for your help :)

regexfor searching