首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

尝试对作为列表流快照的列表进行排序时,出现Flutter/Dart "Cannot modify an unmodifiable“(无法修改不可修改的列表)

在Flutter/Dart中,"Cannot modify an unmodifiable"错误通常发生在尝试对不可修改的列表进行排序时。这个错误的原因是由于尝试修改了一个被标记为不可修改的列表,而不可修改的列表是无法进行排序操作的。

要解决这个问题,我们需要创建一个可修改的列表,然后将不可修改的列表中的元素复制到可修改的列表中进行排序。下面是一个解决方案的示例代码:

代码语言:txt
复制
List<int> unmodifiableList = [3, 1, 2];
List<int> modifiableList = List.from(unmodifiableList); // 创建一个可修改的列表,并将不可修改的列表中的元素复制到可修改的列表中
modifiableList.sort(); // 对可修改的列表进行排序

print(modifiableList); // 输出排序后的列表

在这个示例中,我们首先创建了一个不可修改的列表unmodifiableList,然后使用List.from()方法将其复制到一个可修改的列表modifiableList中。接下来,我们对modifiableList进行排序操作,最后输出排序后的列表。

对于Flutter开发者来说,这个问题可能会在使用ListView.builder()ListView.separated()等构建列表的方法时遇到。在这些情况下,我们可以使用上述解决方案来对列表进行排序。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云对象存储(COS)。

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Dart 专题】Map 集合小结~

键值集合对象,其 key 和 value 是一关系;类似于 Android 中 Map,Dart Map 也分为 HashMap 无序 Map 集合、LinkedHashMap 插入有序...Map.unmodifiable() Map.unmodifiable() 创建一个不可修改与其他 Map 对应 key-value LinkedHashMap 对象; Map map = {'...: Cannot modify unmodifiable map // map04['isChecked'] = true; print('Map -> $map -> $map04'); I/flutter...用于通过条件进行批量删除,和尚尝试把 Map value 不是 String 类型删除;clear 是通用清空 Map 集合; Map map = {'name': 'ACE', 'age': 18...---- 和尚 Map 尝试暂时告一段落,并非很高深内容,只是有个别属性和尚用不熟悉,进行系统了解一下;如有错误,请多多指导! 来源:阿策小和尚

1.6K41

Flutter 数据持久化存储之Hive库

NoSQL数据库: 一些Flutter插件(如moor)也提供了NoSQL数据库支持,比如使用对象数据库(如Hive)来存储数据。...先设想一个应用场景,而不是写到哪里就是哪里,乱枪打鸟不可取。我们就写这样一个场景,对于人员信息操作,可以增加、查询、修改、删除、删除所有。...我们需要修改一下main.dart代码: import 'package:flutter/material.dart'; import 'package:study_hive/page/hive_page.dart...③ CURD   在进行CURD时,我们将代码写在GetxController中,提供相关函数进行操作,下面我们修改一下HiveController中代码: import 'package:flutter...如下图所示:   在列表Item中我们除了显示用户名称和年龄之外还有两个功能按钮,分别用于修改和删除,如下图所示:   针对于删除很简单之后调用控制器里面写好函数就可以了,删除之后列表会自动刷新

31800
  • Google 2020开发者大会Flutter专题

    作为全球增长速度第二开源项目,越来越多国内开发者使用 Flutter 实现跨平台开发,包括腾讯英语君团队、阿里闲鱼团队等等。其在 开放性上进步,得益于开源社区、生态建设、 Web 支持。...Flutter 工程师撰写文章进行了解:怎么进行Flutter内存测试 包体积调试器功能 包体积调试器提供如下功能: 可视化了应用程序总大小,包括功能级别的 Dart AOT 快照; 分析快照和应用包...同样,在Flutter插件包开发中,因为涉及到Native双端代码开发能力,Dart侧暴露统一接口给使用者,也会出现同样问题,此时Pigeon应运而生,Pigeon是Flutter官方推荐插件管理工具...接口新增,或者参数修改,只需要在dart侧更新协议文件,生成双端模板,即可达到同步更新,有效避免了参数修改,参数新增带来双端代码不同步问题,下面是Pigeon工作原理示意图。...对于上面的多图长列表内存问题,我们可以从以下几个方面着手进行优化: 拆分Cell,使每一项变得更小 根据坐标判断图片是否在屏幕内,进而进行图片懒加载和回收 提前获取图片宽高大小,减少布局和重绘 以图片为单位进行纹理回收

    1.3K00

    【老孟FlutterFlutter 2 新增功能

    这意味着我们已经准备好让您尝试一下它作为Flutter应用程序部署目标:您可以将其视为“ beta快照”,以预览将于今年晚些时候发布最终稳定版本。...在尝试使用Flutter桌面Beta时,您可以通过按预期方式切换到Beta通道并根据flutter.dev上指导为目标平台设置配置标志来访问它。此外,我们还制作了稳定通道上可用beta比特快照。...图片发布 图片发布 另外,如果您正在Linux上使用IntelliJ或Android Studio从Snap Store安装Flutter SDK进行编程,则Flutter快照路径已添加到已知SDK...图片发布 经过两年开发,DartLSP(语言服务器协议)支持现已作为默认方式提供给Dart分析器,以将其集成到Flutter扩展Visual Studio Code中。...LSP支持Flutter开发进行了许多改进,包括能够在当前Dart文件中应用某种类型所有修复程序,并使代码完成生成完整函数调用(包括括号和必需参数)功能。

    7.9K20

    35分钟教你学dart(第二节)

    完成后,您就可以直接使用 Dart 进行 Flutter 开发了。...不过,从 Dart 2.12 开始,Dart 加入了其他语言,如 Swift 和 Kotlin,默认情况下不可为空。 此外,Dart保证不可为空类型永远不会包含空值。这被称为空安全。...Dart for 循环 Collections 集合对于相关数据进行分组很有用。Dart 包括几种不同类型集合,但本教程将介绍两种最常见:List和Map....命名和默认参数 匿名函数 Dart 支持一 functions,这意味着它像对待任何其他数据类型一样对待函数。您可以将它们分配给变量,将它们作为参数传递并从其他函数中返回它们。...运行代码以查看生成集合。 匿名函数 恭喜,您已完成本教程。您现在应该学习如何构建 Flutter 应用程序时看到 Dart 代码有了更好理解!

    13.1K30

    为什么说Flutter让移动开发变得更好?

    尽管最初持有保留意见,但我决定尝试一下 – 结果Flutter在一周内彻底改变了我移动开发看法。 下面是我学到东西。...我首先创建了网络请求,解析JSON,并习惯了Dart单线程并发模型(这可单独作为一个主题来讲)。 在接收到网络请求响应后,开始创建列表布局和列表元素。...使用这个,我们可以检索一个电影,给定Future结果列表快照,并创建一个MovieListItem-Widget(在步骤1中创建),并将该电影作为构造函数参数。...我们使用Cloc来进行代码比较,为了简单起见,我们来看Android上Java和XML文件,以及Flutter版本Dart文件。...我们为什么要用XML来描述菜单项,这无法将任何业务逻辑绑定到XML(这是菜单全部目的),然后在Activity / Fragment回调中进行过设置,然后再绑定真实回调到另一个回调上?

    2K10

    Dart语言基础Map、List、Set操作合辑

    [Dart语言基础Map、List、Set操作合辑@凡科快图.png] Header1 Header2 -- -- CSDN 网易云课堂教程 掘金 EDU学院教程 知乎 Flutter系列文章...Flutter完全采用了Dart语言,所以分析Dart语言基础相当于是学习了Flutter语言基础、 在Dart中,Map用来存储对像类型数据,List与Set用来存储数组类型数据。...*** 1 DartMap Map用来保存key-value键值数据集合, 与Object-C中所说字典一至,分为无序HashMap、key插入顺序LinkedHashMap、按key...Map.identity() // 创建一个不可修改、基于哈希值Map,包含other所有的项 Map.unmodifiable(Map other) 然后在实际项目中结合数据创建Map实例,创建一个空...=> item.toString(), value: (item) => item * item); print(dic3); // {1: 1, 2: 4, 3: 9} // 创建一个不可修改

    1.7K11

    在Java中如何加快大型集合处理速度

    crypto List: " + unmodifiableCryptoList); // 尝试在可修改列表中再添加一种加密货币,并显示在不可修改列表中 cryptoList.add...); // 尝试添加并显示一个额外加密货币到不可修改列表中——unmodifiableCryptoList.add将抛出一个未捕获异常,println代码将无法被执行...:" + unmodifiableCryptoList); } } 在运行代码时,你将看到底层可修改列表添加内容显示为不可修改列表修改。...尝试修改不可列表会直接导致抛出 UnsupportedOperationException。...Streams 每一个方法要么是一个中间方法(返回可以进一步处理),要么是一个终端方法(在此之后不可进行其他处理)。管道中中间方法是惰性,也就是说,它们只在必要时才进行求值。

    1.9K30

    在 Node.js 上运行 Flutter Web 应用和 API

    在本文中,你将学到一些有关 Flutter 知识,特别是 Web 支持,该支持最近在 v1.9 版中可作为技术预览版本使用(https://flutter.dev/web)。...它支持在开发期间进行有状态热重启,这意味着你可以随时代码进行更改,并观看它们在模拟器或物理设备上应用,而无需重新启动程序或丢失程序状态。 Flutter 主要关注 iOS 和 Android。...正如你将很快看到那样,只需进行一点修改即可使用现有的 Flutter 应用并将其编译为 HTML、CSS 和 JS 包。 为什么在 Node.js 上运行 Flutter Web 程序?...Cannot install Dart SDK.”错误。请尝试在普通 Windows command shell中运行命令。 升级过程可能需要几分钟。...尝试修改 main.dart 文件中某些代码,然后让 Flutter 重新编译你程序。你会发现所做修改不会立即显示在浏览器中。这是因为 Flutter Web 尚不支持热重启。

    4K10

    flutter 起步

    ^3.1.0拉取声明第三方库到本地工程flutter packages get总结:在pubspec.yaml声明需要引用库,执行命令flutter packages get进行拉取即可使用。...(context).pushNamed跳转路由参数以键值形式传递key:路由名字value:对应Widget4. initialRoute初始路由,当用户进入程序时,自动打开对应路由。...,会回调相关操作8. builder当构建一个Widget前调用一般做字体大小,方向,主题颜色等配置9. title该标题出现在Android:任务管理器程序快照之上IOS: 程序切换管理器中10....但是热刷新也有一些限制,并不是所有的代码改动都可以通过热刷新来更新:编译错误,如果修改Dart代码无法通过编译,Flutter会在控制台报错,这时需要修改对应代码。...修改了main函数中创建根控件节点,Flutter在热刷新后只会根据原来根节点重新创建控件树,不会修改根节点。某个类从普通类型转换成枚举类型,或者类型泛型参数列表变化,都会使热刷新失败。

    4.5K20

    Flutter 空安全糖果罐

    作为一个进步 Flutter 组织 , 组织小伙伴也在第一时间支持了空安全。...如果都支持了,执行 dart migrate --apply-changes。不加 --apply-changes 的话,会有一个浏览器地址,你打开之后,可以在浏览器中进行修改。...我一般还是习惯在直接 --apply-changes 之后直接在 vscode 中进行修改。执行完毕之后,你 Dart SDK 版本会自动改为大于2.12.0。...https://dart.cn/null-safety 之后,根据自己业务场景代码进行更正。...您仍然可以对任何类型列表进行截断,也可以对一个可空类型列表进行填充。 如果您自定义了列表类型,例如继承了 ListBase 或者混入了 ListMixin,那么这项改动可能会造成较大影响。

    1.6K10

    MOO音乐Flutter实战总结之内存治理(上)

    应用整体内存 包括客户端平台内存,以及 Flutter 引擎和 Dart-VM 自身内存。通过整体内存变化,可高效直观地判断功能模块是否有问题。但是不足就是,无法精确定位出问题代码。 2....内存清理之后会出现零散内存碎片,需要移动整理来腾出完整可用内存池。进行清除和整理时候,会使引擎所有线程都停止处理 - ‘stop the world’。...从开发角度来说,从实现细节去减少内存占用,以及开发完功能后进行内存泄漏排查,是必不可开发步骤。 3....长列表直接构建列表项 通过列表数据遍历方式,一次生成所有数据对应 widget 列表,直接塞进 Column 里展示给用户,当加载了几页数据之后,数据量稍大就会轻易导致 OOM 或导致严重卡顿。...Flutter Engine 自身问题 如 iOS 渲染 emoji 内存占用 +130 MB,且关闭页面无法被回收,目前只能从引擎内部去挖掘解决方案。

    1.7K32

    革命性web前端框架Flutter详细介绍和学习路径

    Flutter是最流行框架呢,是没有任何问题,但它并不是一个最近才出现开发框架。为什么这么说呢? ?...Dart能成为Flutter不可或缺一部分,根本原因还是因为其具有以下特性: 1)Dart是AOT(Ahead Of Time)编译,编译成快速、可预测本地代码,使Flutter几乎都可以使用Dart...这不仅使Flutter变得更快,而且几乎所有的东西(包括所有的小部件)都可以定制; 2)Dart也可以JIT(Just In Time)编译,开发周期异常快,工作颠覆常规(包括Flutter流行亚秒级有状态热重载...Dart可以在没有锁情况下进行对象分配和垃圾回收。就像JavaScript一样,Dart避免了抢占式调度和共享内存(因而也不需要锁)。...动态化技术 Flutter使用Dart语言,支持AOT和JIT两种模式,在Dev时候,通过JIT可以实现热重载,开发者可以即时看到代码修改效果。

    3.9K40

    Flutter 基础知识点总结

    正好最近刚入门了Flutter,并在项目中进行了一些应用,于是将应用一些心得进行整理,希望帮助更多初学者。 在学习Flutter之前,让我们先来认识下什么是Flutter跨平台。...Dart 部分 之所以采用Dart语言来进行Flutter应用开发,而并非Java、Javascript这类热门语言,这是Flutter团队当前热门10多种语言慎重评估后选择。...Widget 是Flutter基础,作为 MVVM 一部分,Widget主要用于作为MVVMV层。...比方说点击CheckBox,会出现选中和非选中状态之间切换,就是通过修改状态来达到。...2 组件封装 例如上面,笔者想第四行这种展示进行封装,觉得今后布局可能会用到,因此在这一步,可以先把这一块儿抽离出一个控件。

    5.2K10

    开始使用-编写你第一个Flutter应用程序 顶

    你将会修改这个初学者应用程序来创建完成应用程序。 在这个codelab中,你将主要编辑Dart代码所在lib / main.dart。 提示:将代码粘贴到应用程序中时,缩进可能会变形。...进行以下更改,如下所示: import 'package:flutter/material.dart'; import 'package:english_words/english_words.dart...这可能是误报,但考虑重新启动以确保您更改反映在应用用户界面中。 应用程序应该像以前一样运行,每次热重新加载或保存应用程序时都会显示一个字。 ? 问题?...1.将一个_suggestions列表添加到RandomWordsState类,以保存建议。 该变量以下划线(_)开头 - 在前面加上一个带有下划线标识符可以强化Dart语言隐私。...列表图标出现在应用程序栏中。 点击它什么也没做,因为_pushSaved函数是空。 3.当用户点击应用栏中列表图标时,建立一条路由并将其推送到导航器堆栈。 此操作会更改屏幕以显示新路由。

    9.5K20

    Dart 代码组件集合Dart VM

    快照格式是底层,并且针对快速启动进行了优化:「它本质上是一个要创建对象列表以及有关如何将它们连接在一起说明」。...❞ 最初快照不包括机器代码,但是后来在开发 AOT 编译器时添加了此功能。开发 AOT 编译器和带有代码快照动机:「是为了允许在由于平台级别限制而无法进行 JIT 平台上使用 VM」。...从这个快照开始 VM 仍然可以 JIT。 从 AppAOT 快照运行 AOT 快照最初是为无法进行 JIT 编译平台引入,但它们也可用于快速启动和更低性能损失情况。...❞ 无法进行 JIT 意味着: 1、AOT 快照必须包含可以在应用程序执行期间调用每个函数可执行代码; 2、可执行代码不得依赖任何可能在执行过程中会被违反推测性假设; 为了满足这些要求,AOT 编译过程会进行全局静态分析...❞ 可切换调用 即使进行了全局和局部分析,AOT 编译代码仍可能包含无法去虚拟化调用(意味着它们无法静态解析)。

    1.6K30

    Flutter为什么使用Dart

    不可,所以Dart一定是有其非常大优势。...Dart 以下是Dart功能列表,这些功能对于Flutter来说是必不可少: Dart是AOT(Ahead Of Time)编译,编译成快速,可预测本机代码,几乎所有Flutter都可以用Dart...Dart还可以通过JIT(Just In Time)进行编译,以实现异常快速开发周期和改变游戏规则工作(包括Flutter亚秒级有状态热重装)。...以下是一位移动应用程序开发人员Flutter 热重载评价: 我想测试热重载,所以我改变了颜色,保存修改,结果……就喜欢上它了❤! 这个功能真的很棒。...作为直接证据,Google内部一个大型项目希望将其移动应用程序移植到iOS。他们打算雇用一些iOS程序员,但决定尝试Flutter。他们监控了使开发人员快速掌握Flutter所花费时间。

    1.5K20

    使用 Android Studio 进行 Flutter 开发

    除了程序名外,在应用发布后,它将作为 Android 应用包名,以及 iOS 应用 Bundle ID。如果你可能发布此应用,最好现在就指定好它,应用发布后将无法更改。你域名应该是唯一。...“如果 Run 和 Debug 按钮不可用且未显示目标设备,则意味着 Flutter 未发现任何已连接 iOS 、Android 设备或模拟器。你需要连接设备或启动模拟器才能继续。...当光标放在 Flutter widget 上时,黄色灯泡图标会指示可用修改, 可以通过点击灯泡进行修改, 或使用键盘快捷键(在 Linux 和 Windows 上使用 Alt+Enter,在 macOS...如果你已经在 Android Studio 中将整个项目作为 Flutter 应用打开, 则有两种方法可以打开 Android 文件,在 IDE 中进行编辑。...所有已知问题都会在问题跟踪器中进行跟踪: Flutter 插件:GitHub 问题跟踪 Dart 插件: JetBrains 问题跟踪 我们欢迎所有的错误、问题以及功能反馈。

    6.3K30

    Flutter 中文文档:简单应用状态管理

    这里我们出现了第一个问题:我们把当前购物车状态放在哪合适呢? 2. 提高状态层级 在 Flutter 中,有必要将存储状态对象置于 widget 树中对应 widget 上层。 为什么呢?...在类似 Flutter 声明式框架中,如果你想要修改 UI,那么你需要重构它。并没有类似 MyCart.updateWith(somethingNew) 简单调用方法。...但是这样方式很难避免出现 bug。 在 Flutter 中,每次当 widget 内容发生改变时候,你就需要构造一个新。...Dart 函数都是 first class 对象,所以你可以以任意方式传递它们。...但是对于全局应用状态来说你需要在不同地方进行修改,可能需要大量传递回调函数—。

    2K10
    领券