问题描述
当我单击搜索按钮时,它显示“在构建_SearchPage时抛出了以下断言(脏,相关性:[_LocalizationsScope- [GlobalKey#69e74],_InheritedTheme],状态:_SearchPageState#72bb6): 'package:flutter / src / widgets / basic.dart':失败的断言:6938行pos 15:'child!= null':不正确。
import 'package:flutter/material.dart';
import 'package:grk_001/screen/main_screen.dart';
import 'widgets/entry_item.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:grk_001/screen/favourite_screen.dart';
import 'package:grk_001/Provider/Auth.dart';
import 'package:provider/provider.dart';
import 'package:grk_001/Provider/cart.dart';
import 'package:grk_001/widgets/badge.dart';
import 'package:grk_001/screen/cart_screen.dart';
import 'package:grk_001/widgets/drawer.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:grk_001/models/main_screen_categories_entry.dart';
class HomeScreen extends StatefulWidget {
static const String routename = 'homescreen';
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
final GlobalKey<ScaffoldState> _scaffoldkey = GlobalKey<ScaffoldState>();
FirebaseUser Loggedinuser;
@override
void didChangeDependencies() {
// TODO: implement didChangeDependencies
Future.delayed(Duration.zero).then((_) async {
await Provider.of<Auth>(context,listen: false).getcurrentuser();
});
super.didChangeDependencies();
}
@override
Widget build(BuildContext context) {
final devicesize = MediaQuery.of(context).size;
return SafeArea(
child: Scaffold(
key: _scaffoldkey,appBar: AppBar(
leading: IconButton(
onPressed: () {
_scaffoldkey.currentState.openDrawer();
},icon: Icon(
Icons.list,color: Colors.white,size: 35.0,),bottom: PreferredSize(
preferredSize: const Size.fromHeight(50.0),child: Container(
padding: const EdgeInsets.all(8.0),child: Row(
children: <Widget>[
Expanded(
child: IconButton(
icon: Icon(Icons.search),onPressed: () {
showSearch(context: context,delegate: DataSearch());
},const SizedBox(
width: 10.0,Expanded(
child: GestureDetector(
onTap: () {
_scaffoldkey.currentState.openEndDrawer();
},child: Container(
padding: const EdgeInsets.all(8.0),alignment: Alignment.center,height: 40.0,decoration: BoxDecoration(
color: Colors.white,borderRadius: BorderRadius.circular(5.0),child: Text(
'Categories',],title: Text('HomeScreen'),actions: <Widget>[
IconButton(
icon: Icon(
FontAwesomeIcons.heart,size: 30.0,tooltip: 'My Wish List',onPressed: () {
Navigator.pushNamed(context,FavouriteScreen.routename);
},IconButton(
icon: Icon(
Icons.notifications,tooltip: 'My Notifications',onPressed: () {},Consumer<Cart>(
builder: (_,cartdata,ch) => Badge(
child: ch,value: cartdata.itemcount.toString(),child: IconButton(
onPressed: () {
Navigator.pushNamed(context,CartScreen.routename);
},icon: Icon(
Icons.shopping_cart,size: 40.0,body: MainScreen(),// body: CategoryScreen(),endDrawer: Drawer(
child: Column(
children: <Widget>[
Container(
color: Color(0XFFFF4081),height: devicesize.height * 0.10,child: DrawerHeader(
margin: EdgeInsets.zero,child: InkWell(
onTap: () {
Navigator.of(context).pop();
},child: Row(
crossAxisAlignment: CrossAxisAlignment.center,mainAxisAlignment: MainAxisAlignment.start,children: <Widget>[
Icon(
Icons.apps,SizedBox(
width: 10.0,Text(
'Categories',style:
TextStyle(color: Colors.white,fontSize: 20.0),)
// child: Text('Categories'),Container(
height: devicesize.height * 0.85,child: ListView.builder(
itemBuilder: (context,index) => EntryItem(data[index]),itemCount: data.length,)
],drawer: Container(
width: devicesize.width * 0.65,child: DrawerItem(devicesize,context),);
}
}
class DataSearch extends SearchDelegate<String> {
final statelist = [
'Andaman and Nicobar Islands',' Andhra Pradesh','Arunachal Pradesh','Assam','Bihar','Chandigarh ','Chhattisgarh','Dadra and Nagar Havel','Daman and Diu','Delhi','Goa','Gujrat','Haryana','Himachal Pradesh','Uttar Pradesh','Uttarakhand','West Bengal','Sikkim','Meghalya','Mizoram',];
final recentlist = ['Modingar','Ghaziabad','Merrut','Hapur','Delhi'];
@override
List<Widget> buildActions(BuildContext context) {
// action for app bar
return [
IconButton(
onPressed: () {
query = "";
},icon: Icon(Icons.clear),)
];
}
@override
Widget buildLeading(BuildContext context) {
// leading icon on the left of the app bar
return IconButton(
icon: AnimatedIcon(
icon: AnimatedIcons.menu_arrow,progress: transitionAnimation,onPressed: () {
close(context,null);
},);
}
@override
Widget buildResults(BuildContext context) {
// TODO: implement buildResults
return Container(
height: 150.0,child: Card(
color: Colors.red,shape: StadiumBorder(),child: Text(query),);
}
@override
Widget buildSuggestions(BuildContext context) {
// TODO: implement buildSuggestions
final suggestionList = query.isEmpty
? recentlist
: statelist.where((element) => element.startsWith(query)).toList();
ListView.builder(
itemBuilder: (context,index) => ListTile(
onTap: () {
showResults(context);
},title: RichText(
text: TextSpan(
text: suggestionList[index].substring(0,query.length),style: TextStyle(
color: Colors.black,fontWeight: FontWeight.bold,children: [
TextSpan(
text: suggestionList[index].substring(query.length),style: TextStyle(color: Colors.grey))
]),)),itemCount: suggestionList.length,);
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)