Flutter 径向菜单错误:子树中有多个英雄共享相同的标签

问题描述 投票:0回答:1

我检查了其他 Stack Overflow 答案,并建议它与浮动操作按钮有关,但是:

  • 我的代码中没有浮动操作按钮来触发此错误。
  • 径向按钮不包含标签属性。
  • 当我单击径向按钮时会触发此错误。

Error:

Exception caught by scheduler library =====================================================
The following assertion was thrown during a scheduler callback:
There are multiple heroes that share the same tag within a subtree.

class RadialMenuExample extends StatelessWidget {
  const RadialMenuExample({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.black87,
      appBar: AppBar(
        backgroundColor: Colors.black45,
        title: const Text("Animated Radial Menu Example"),
        centerTitle: true,
      ),
      body: RadialMenu(
        children: [
          RadialButton(
            icon: const Icon(Icons.ac_unit),
            buttonColor: Colors.teal,
            onPress: () => Navigator.push(
              context,
              MaterialPageRoute(builder: (_) => const TargetScreen()),
            ),
          ),
          RadialButton(
            icon: const Icon(Icons.camera_alt),
            buttonColor: Colors.green,
            onPress: () => Navigator.push(
              context,
              MaterialPageRoute(builder: (_) => const TargetScreen()),
            ),
          ), e.t.c

class TargetScreen extends StatelessWidget {
  const TargetScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(title: const Text("Target Screen")),
        );
    }
}
flutter menu flutter-animation
1个回答
0
投票

包:https://pub.dev/packages/animated_radial_menu

这个包已经过时了,最后更新是在 3 年前。您应该将其替换为更新且受支持的软件包,或者您应该从 github 分叉存储库并将“heroTag”变量赋予 FloatingActionButton 部分。

这是您的问题的原因:https://api.flutter.dev/flutter/material/FloatingActionButton/heroTag.html

如果没有明确设置,那么每条路线(即每个屏幕)只能有一个 FloatingActionButton,否则会出现标签冲突(一条路线上的多个英雄不能有相同的标签)。 Material Design 规范建议每个屏幕仅使用一个浮动操作按钮。

© www.soinside.com 2019 - 2024. All rights reserved.