如何解决Scaffold.geometryOf() 使用不包含 Scaffold 的上下文调用
在构建 Builder 时抛出了以下断言: Scaffold.geometryOf() 使用不包含 Scaffold 的上下文调用。
当提供的上下文与其构建函数实际创建要查找的 Scaffold 小部件的上下文来自同一个 StatefulWidget 时,通常会发生这种情况。
import 'package:ecommerce_app/screens/user_info.dart';
import 'package:Flutter/material.dart';
import 'cart.dart';
import 'Feeds.dart';
import 'home.dart';
class BottomBarScreen extends StatefulWidget {
@override
_BottomBarScreenState createState() => _BottomBarScreenState();
}
class _BottomBarScreenState extends State<BottomBarScreen> {
late List<Map<String,Widget>> _pages;
int _selectedPageIndex = 0;
@override
void initState() {
_pages = [
{
'page': Home(),},{
'page': Feeds(),{
'page': Search(),{
'page': Cart(),{
'page': UserInfo(),];
super.initState();
}
void _selectPage(int index) {
setState(() {
_selectedPageIndex = index;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: _pages[_selectedPageIndex]['page'],bottomNavigationBar: BottomAppBar(
// color: Colors.white,shape: CircularNotchedRectangle(),notchMargin: 0.01,clipBehavior: Clip.antiAlias,child: Container(
height: kBottomNavigationBarHeight * 0.98,child: Container(
decoration: Boxdecoration(
color: Colors.white,border: Border(
top: BorderSide(
color: Colors.grey,width: 0.5,),child: BottomNavigationBar(
onTap: _selectPage,backgroundColor: Theme.of(context).primaryColor,// ignore: deprecated_member_use
unselectedItemColor: Theme.of(context).textSelectionColor,selectedItemColor: Colors.purple,currentIndex: _selectedPageIndex,items: [
BottomNavigationBarItem(
icon: Icon(Icons.home),// ignore: deprecated_member_use
title: Text('Home'),BottomNavigationBarItem(
icon: Icon(Icons.RSS_Feed),// ignore: deprecated_member_use
title: Text('Feeds'),BottomNavigationBarItem(
activeIcon: null,icon: Icon(null),// ignore: deprecated_member_use
title: Text('Search'),BottomNavigationBarItem(
icon: Icon(
Icons.shopping_bag,// ignore: deprecated_member_use
title: Text('Cart'),BottomNavigationBarItem(
icon: Icon(Icons.person),// ignore: deprecated_member_use
title: Text('User'),],floatingActionButtonLocation:
FloatingActionButtonLocation.miniCenterDocked,floatingActionButton: Padding(
padding: const EdgeInsets.all(8.0),child: FloatingActionButton(
hoverElevation: 10,splashColor: Colors.grey,tooltip: 'Search',elevation: 4,child: Icon(Icons.search),onpressed: () => setState(() {
_selectedPageIndex = 2;
}),);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。