dart - 如何在单击 BottomAppBar 图标时导航到新屏幕?
问题描述
我想在 BottomAppBar 的单击图标上导航到新屏幕,但出现错误:在初始化程序中只能访问静态成员
final makeBottom = Container(
height: 45.0,
child: BottomAppBar(
color: Colors.white,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
IconButton(
icon: Icon(Icons.home, color: Color.fromARGB(255, 30, 110, 160)),
onPressed: navigateToPage,//only static members can be accessed in initializers
),
IconButton(
icon: Icon(Icons.search, color: Color.fromARGB(255, 30, 110, 160)),
onPressed: () {},
),
IconButton(
icon: Icon(Icons.star, color: Color.fromARGB(255, 30, 110, 160)),
onPressed: () {},
),
IconButton(
icon: Icon(Icons.favorite_border,
color: Color.fromARGB(255, 30, 110, 160)),
onPressed: () {},
),
IconButton(
icon: Icon(Icons.account_circle,
color: Color.fromARGB(255, 30, 110, 160)),
onPressed: () {},
),
],
),
),
);
方法 navigateToPage
void navigateToPage() async {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Userqst(
user: widget.user,
),
fullscreenDialog: true));
}
解决方案
试试下面的代码..
return Scaffold{
bottomNavigationBar : bottomNav() // call the Widget
}
Widget bottomNav(){
return new Container (
height :45.0,
//Copy the bottomAppBar code
);
}
推荐阅读
- sql - Oracle 插入、选择和不存在
- javascript - reader.readAsDataURL() 总是返回 blob 的 MIME 类型和“[object FileList]”
- azure - Azure 模板我们如何根据资源组位置更改资源名称?
- android - 撰写不听任何重复值
- mysql - 我正在尝试连接 MySQl 和 Flask,但我不断收到错误消息。我正在为这个网络应用程序使用 XAMPP
- nivo-react - 控制 Nivo 条形图中标记线的宽度
- c++ - std::reference_wrapper 之间的最佳可行重载函数
和T - python-3.x - Pandas 使用 map 或 apply 使用字典从调整中创建新列
- google-slides - 在 Google 幻灯片中自动执行任务
- hdfs - 如何在最新的 Tensorflow 2.6.0 中访问 HDFS 文件系统?