flutter: Another exception was thrown: Multiple widgets used the same GlobalKey

2023-10-29 15:20

本文主要是介绍flutter: Another exception was thrown: Multiple widgets used the same GlobalKey,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

该问题原因多个widget重复使用同一GlobalKey导致的,

我的代码如下:

// 初始化一个 GlobalKey 传递 key 从SliverCollapsingWidget 到 NftBlurImageWidget
传递过程中两个weidget同时使用了videoKey

final GlobalKey<VideoWidgetState> videoKey = GlobalKey();SliverCollapsingWidget(key: videoKey,tag: tag,heroTag: widget.heroTag,)),),class SliverCollapsingWidget extends StatelessWidget {final String tag;final String heroTag;final GlobalKey<VideoWidgetState> videoKey;const SliverCollapsingWidget({Key key,this.tag,@required this.videoKey,@required this.heroTag,}) : super(key: key);....child: NftBlurImageWidget(key: videoKey,heroTag: heroTag ?? "",avatarUrl: controller.model?.avatarUrl ?? "",)class NftBlurImageWidget extends StatelessWidget {const NftBlurImageWidget({Key key,@required this.avatarUrl,@required this.backgroundUrl,@required this.heroTag,@required this.videoKey,}) : super(key: key);

修改方法 不要使用自带key ,要使用重命名参数key传递


在这里插入图片描述

这篇关于flutter: Another exception was thrown: Multiple widgets used the same GlobalKey的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/301557

相关文章

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

Flutter Button使用

Material 组件库中有多种按钮组件如ElevatedButton、TextButton、OutlineButton等,它们的父类是于ButtonStyleButton。         基本的按钮特点:         1.按下时都会有“水波文动画”。         2.onPressed属性设置点击回调,如果不提供该回调则按钮会处于禁用状态,禁用状态不响应用户点击。

flutter开发实战-flutter build web微信无法识别二维码及小程序码问题

flutter开发实战-flutter build web微信无法识别二维码及小程序码问题 GitHub Pages是一个直接从GitHub存储库托管的静态站点服务,‌它允许用户通过简单的配置,‌将个人的代码项目转化为一个可以在线访问的网站。‌这里使用flutter build web来构建web发布到GitHub Pages。 最近通过flutter build web,通过发布到GitHu

Flutter 中的低功耗蓝牙概述

随着智能设备数量的增加,控制这些设备的需求也在增加。对于多种使用情况,期望设备在需要进行控制的同时连接到互联网会受到很大限制,因此是不可行的。在这些情况下,使用低功耗蓝牙(也称为 Bluetooth LE 或 BLE)似乎是最佳选择,因为它功耗低,在我们的手机中无处不在,而且无需连接到更广泛的网络。因此,蓝牙应用程序的需求也在不断增长。 通过阅读本文,您将了解如何开始在 Flutter 中开

myEclipse失去焦点时报错Unhandled event loop exception的解决方案

一句话:百度杀毒惹的祸。。。。果断卸载后问题解决。

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFArra

这个错误说的是一个不可变数组负值给了一个可变的数组。有可能你前面定义的数组是一个可变数组,但是在你其他方法里面用他的时候,他就是一个不可变数组,因为在可变数组拿到别的地方用的时候,他会默认为不可变的,可能这只是一个类里面你只是简单的声明了他吧,并没有进行对他初始化,或者分配什么内存,所以他只是一个不可变的数组,当你在其他地方用他的时候,他就默认为不可变的数组,他可能因为你的没分配内存,而变回不可变

Exception in plugin Android ButterKnife zelezny

所在页面的布局文件命名id有问题,不能有两个下划线,,如tv__name

Stripe data files across multiple physical devices and locations

Stripe data files across multiple physical devices and locations 如果在没有做条带的磁盘(即从存储到OS没有做raid),那么就需要手工去做I/O的分布。切记,不应该将频繁使用的table和其index分开,这样会正大I/O; 针对tables、indexes、temp tablespace,首先调优SQL,其次如果真心无法再

flutter开发多端平台应用的探索 下 (跨模块、跨语言通信之平台通道)

前文 Flutter 是一个跨平台的开发框架,它允许开发者使用相同的代码库来构建 iOS、Android、Web 和桌面应用程序。 上文flutter开发多端平台应用的探索 上(基本操作)-CSDN博客列举了一些特定平台的case(桌面端菜单,鼠标快捷键)的使用方法,有些是flutter提供了对应能力,只需要学习如何调API,有些事三方库支持,本文要探讨的平台通道是更为强大的工具,很多三方插件

Flutter-使用dio插件请求网络(get ,post,下载文件)

引入库:dio: ^2.1.13可直接运行的代码:包含了post,get 下载文件import 'package:flutter/material.dart';import 'package:dio/dio.dart';void main() {runApp(new MaterialApp(title: 'Container demo',home: new visitNetPage(),)