Я столкнулся с проблемой, которую виджет перестраивает всякий раз, когда я нажимаю на textField. а также при отпускании клавиатуры
я проверил этот ответ , но он не работает.
Вот виджет
class ListSearch extends StatefulWidget {
@override
_ListSearchState createState() _ListSearchState();
}
class _ListSearchState extends State<ListSearch> {
@override
Widget build(BuildContext context) { print('rebuild....');
return MaterialApp(
theme: ThemeData(fontFamily: "Lato"),
home: Scaffold(
appBar: AppBarBuilder.getAppBar(context, "Listings", null),
body: SingleChildScrollView(
child: Column(
children: <Widget>[
TextField(
maxLines: 1,
textInputAction: TextInputAction.search,
onChanged: (val) {applyFilter(val); },
cursorColor: Colors.blue,
controller: searchController,
style: TextStyle(
color: Colors.black,
fontSize: 16.0,
),
decoration: InputDecoration(
focusedBorder: InputBorder.none,
border: InputBorder.none,
alignLabelWithHint: false,
hintText: "Search",
),
),
Container(height: 600.0, child: buildLists()),
],
),
),
),
);
}
}
Есть ли какое-нибудь решение для этого?
Обновление
также при переходе на эту страницу он строит дважды
Navigator.of(context).push(MaterialPageRoute(builder: (context) => ListSearch()));