gpt4 book ai didi

gridview - flutter GridView 导致 Navigator.push 错误

转载 作者:IT王子 更新时间:2023-10-29 07:13:10 24 4
gpt4 key购买 nike

我的 Flutter 应用程序有一个按钮可以转到联系人页面。当 GridView 只有一个 floatingButton 时,它工作得很好。但是当 GridView 有多个 floatingButton 时会报错。请帮助解决这个问题。

错误:

  • flutter:在调度程序回调期间抛出了以下断言:
  • flutter:在一个子树中有多个英雄共享相同的标签。
  • flutter:在要为英雄设置动画的每个子树(通常是 PageRoute 子树)中,每个英雄
  • flutter:必须有一个唯一的非空标签。
  • flutter:在这种情况下,多个英雄具有以下标签:
  • flutter:这是其中一位违规英雄的子树:
  • flutter: # Hero(tag: , state: _HeroState#232b6)

enter image description here

class _DatabasePageState extends State<DatabasePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.black,
appBar: AppBar(
title: Text('DB'),
centerTitle: true,
backgroundColor: Colors.black,
),
body: _showOrderdatabase(),

);
}

Widget _showOrderdatabase() {

return Column(
children: <Widget>[
Container(
height: 220.0,
color: Colors.transparent,
child: new Container(
padding: EdgeInsets.all(40.0),
decoration: new BoxDecoration(
color: Colors.green,
borderRadius: BorderRadius.all(const Radius.circular(40.0)),
),
child: new Column(
children: <Widget>[
Text(
"vds",
style: TextStyle(fontSize: 16.0),
),
IconButton(
icon: Icon(
Icons.email,
color: Colors.blueAccent,
),
iconSize: 50.0,
onPressed: () => Navigator.push(context, MaterialPageRoute(builder: (c) => new ContactUs())),
),
],
)),
),
Expanded(
child: GridView.count(
primary: false,
padding: const EdgeInsets.all(20.0),
crossAxisSpacing: 30.0,
mainAxisSpacing: 30.0,
crossAxisCount: 4,
children: <Widget>[
FloatingActionButton(
onPressed: null,
backgroundColor: Colors.orange,
child: Text('今天'),
foregroundColor: Colors.black,
),
FloatingActionButton(
onPressed: null,
backgroundColor: Colors.yellow,
child: Text('年'),
foregroundColor: Colors.black,
),

],
),
)
],
);
}
}

最佳答案

FloatingActionButton 有一个 heroTag 属性,默认值为 const _DefaultHeroTag(),

因为您有两个 FloatingActionButton,您应该为每个分配一个不同的标签:

   children: <Widget>[
FloatingActionButton(
onPressed: null,
heroTag: 'Tag1',
backgroundColor: Colors.orange,
child: Text('今天'),
foregroundColor: Colors.black,
),
FloatingActionButton(
onPressed: null,
heroTag: 'Tag2',
backgroundColor: Colors.yellow,
child: Text('年'),
foregroundColor: Colors.black,
),
],

或者您可以将两者都设置为 null,这样就不会将 Hero 小部件添加到树中。

关于gridview - flutter GridView 导致 Navigator.push 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53265299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com