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

当我再次切换到选项卡时,如何停止我未来的构建器重新加载?- Flutter/dart

在Flutter/Dart中,可以通过使用AutomaticKeepAliveClientMixin来停止未来的构建器重新加载。这个mixin提供了一个wantKeepAlive属性,可以用来控制是否保持状态。下面是一个示例:

代码语言:txt
复制
import 'package:flutter/material.dart';

class MyPage extends StatefulWidget {
  @override
  _MyPageState createState() => _MyPageState();
}

class _MyPageState extends State<MyPage> with AutomaticKeepAliveClientMixin {
  @override
  bool get wantKeepAlive => true;

  @override
  Widget build(BuildContext context) {
    super.build(context); // 必须调用super.build(context)
    
    return Scaffold(
      appBar: AppBar(
        title: Text('My Page'),
      ),
      body: Container(
        child: Text('Content'),
      ),
    );
  }
}

在上面的示例中,MyPage继承自StatefulWidget,并使用AutomaticKeepAliveClientMixin混入。通过重写wantKeepAlive方法并返回true,可以告诉Flutter保持状态。在build方法中,需要调用super.build(context)来确保正确的状态保持。

这样,当你切换到其他选项卡并再次切换回来时,MyPage的状态将会被保持,而不会重新加载。这对于需要保持页面状态的场景非常有用,例如在一个选项卡中显示网络请求的数据,切换回来时不需要重新请求数据。

推荐的腾讯云相关产品:腾讯云服务器(CVM)和腾讯云函数(SCF)。

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

相关·内容

Flutter 3.3更新详解

然后,数据会在结构数组转换至内置存储 ui.ImmutableBuffer 再次拷贝。 随着 新增 ui.ImmutableBuffer.fromAsset 引入。...应用可以增加最大虚拟内存分配量,但这项操作仅在较新 iOS 版本上可用,并不适用于其他 Flutter 支持 iOS 设备版本。当我们能够在所有位置使用这项优化时,我们会重新进行评估。...有了这项改动,开发者无需再使用三方工具编译着色。在未来,引擎 FragmentProgram API 可能只能接受来自 Flutter 工具构建。...目前我们还没应用这项更改,但如 FragmentProgram API 改进支持设计文档 中所计划,有可能在未来实行。 想要了解更多内容,你可以查看这个 Flutter 着色示例。...停止支持 32 位 iOS 在我们发布 Flutter 3.0 曾经提到,由于使用量减少,3.0 版本是最后一个支持 32 位 iOS 设备以及 iOS 9 和 10 版本。

2.9K20

浅谈跨平台框架Flutter搭建与运行

配置完成后,还需用source命令重新加载,具体命令如下: source ~/.bash_profile 完成以后, flutter安装工作已基本完成,但要进行开发,还需要使用命令来检测其是否成功安装...; Dart插件:提供代码分析(输入代码进行验证、代码补全等)。...如果没有列出可用,请选择 Tools>Android>AVD Manager 创建; 在工具栏中点击 Run图标; 如果一正常,在设备或模拟上会看到启动应用程序 4.体验热重载:Flutter可以通过热重载实现快速开发周期...对代码进行简单更改,然后使用IDE或命令行工具进行重新加载,可以在设备或模拟上看到更改。...当我们运行flutter run以后,会出现一段红色文字提示,如下所示: r 键:点击后热加载,即重新加载; p 键:显示网格,可以掌握布局情况; o 键:切换Android和iOS预览模式; q

3.3K20
  • Flutter常见开发问题

    这是一个让印象深刻工具,很想看看它是如何发展。 链接:https : //flutterstudio.app Flutter 是否像浏览一样工作?...当您运行 Flutter 项目,它会根据运行模拟或设备进行构建,使用其中文件夹进行 Gradle 或 XCode 构建。...它是如何做到?在构建应用程序时,它不是只使用特定资源,而是实质上需要所有资源。为什么这有帮助?因为如果将一个图标从一个更改为另一个,则不必完全重建应用程序。...下次重新启动或热加载应用程序时,Flutter 基本上会在现有应用程序之上修补更改,从而提供极快刷新。 注意:通过热重载或重启所做更改不会保存在设备 APK 或 IPA 文件中。...为确保您应用在设备上进行所有更改,请考虑再次停止并运行该应用。 state是什么意思?什么是 setState()? **简单来说,“状态”是小部件变量值集合。

    6.8K30

    Flutter常见开发问题

    这是一个让印象深刻工具,很想看看它是如何发展。 链接:https : //flutterstudio.app Flutter 是否像浏览一样工作?...当您运行 Flutter 项目,它会根据运行模拟或设备进行构建,使用其中文件夹进行 Gradle 或 XCode 构建。...它是如何做到?在构建应用程序时,它不是只使用特定资源,而是实质上需要所有资源。为什么这有帮助?因为如果将一个图标从一个更改为另一个,则不必完全重建应用程序。...下次重新启动或热加载应用程序时,Flutter 基本上会在现有应用程序之上修补更改,从而提供极快刷新。 注意:通过热重载或重启所做更改不会保存在设备 APK 或 IPA 文件中。...为确保您应用在设备上进行所有更改,请考虑再次停止并运行该应用。 state是什么意思?什么是 setState()? **简单来说,“状态”是小部件变量值集合。

    6.7K20

    「译」为 JavaScript 开发者准备 Flutter 指南

    过去几年看过所有前端技术中,在尝试了 Flutter 后最为兴奋。在这篇文章中,将讨论为什么它令我如此激动,并介绍如何尽快开始使用它。...在开始介绍如何使用 Flutter 之前,将首先回顾一下对 SDK 优缺点看法。...强大 CLI 可以顺利轻松地启动和运行,而不会遇到很多障碍/错误 调试体验很好,开箱即用重新加载以及一系列关于调试技术文档 (https://flutter.io/debugging...现在,切换到新目录,打开 iOS 模拟或 android 模拟,然后运行以下命令: flutter run 图片 这将在你已经打开模拟中启动应用程序。...我会将 Flutter 添加到我技术栈中,所以当我遇到 React Native 不能解决问题情况,我会使用 Flutter

    1.4K30

    为什么Flutter会选择 Dart

    在开发过程中,Flutter使用JIT编译,通常可以在一秒之内重新加载并继续执行代码。只要有可能,应用程序状态在重新加载保留下来,以便应用程序可以从停止地方继续。...当我部署代码并花费很长时间分心了,做了其他事情,当我回到模拟/设备就忘了想测试内容。有什么比花5分钟将控件移动2px更令人沮丧?有了Flutter,这不再存在。...不必切换到设计模式,选择鼠标并开始点击,然后想是否有些东西必须通过编程来完成,如何实现等等。因为一都是程序化。而且这些API设计得非常好。它很直观,并且比自动布局XML更强大。...与许多公司一样,它们利用不同语言、工具和程序员为每个平台(Web、iOS和Android)构建独立应用程序。切换到Dart意味着他们不再需要雇佣三种不同程序员。...而最重要是,他们喜欢Dart带来Flutter功能(如热重载),以及Dart帮助他们构建美丽、高性能应用程序。 Dart 2 在本文发表Dart 2正在发布。

    2.1K30

    Flutter为什么使用Dart

    老孟导读:关于Flutter为什么使用Dart?这个话题,就像PHP是世界上最好语言一样,争论从来没有停止过,有很多说法,比如: Google是为了推广DartDart是亲儿子。...Dart允许Flutter避免使用像JSX或XML这样声明式布局语言,也不需要单独可视化界面构建,因为Dart声明式程序化布局易于阅读和可视化。...在开发期间,Flutter使用JIT编译,该编译通常可以在一秒钟内重新加载并继续执行代码。只要有可能,应用状态就会在每次重新加载保持不变,因此该应用可以从中断处继续运行。...当我部署代码并花费很长时间分心了,做了其他事情,当我回到模拟 / 设备就忘了想测试内容。有什么比花 5 分钟将控件移动 2px 更令人沮丧?有了 Flutter,这不再存在。...不必切换到设计模式,选择鼠标并开始点击,然后想是否有些东西必须通过编程来完成,如何实现等等。因为一都是程序化。而且这些 API 设计得非常好。它很直观,并且比自动布局 XML 更强大。

    1.5K20

    浅谈跨平台框架 Flutter 搭建与运行

    配置完成后,还需用source命令重新加载,具体命令如下: source ~/.bash_profile 完成以后, flutter安装工作已基本完成,但要进行开发,还需要使用命令来检测其是否成功安装...; Dart插件:提供代码分析(输入代码进行验证、代码补全等)。...如果没有列出可用,请选择 Tools>Android>AVD Manager 创建; 在工具栏中点击 Run图标; 如果一正常,在设备或模拟上会看到启动应用程序,如下图所示: [kny4ty1ip8...对代码进行简单更改,然后使用IDE或命令行工具进行重新加载,可以在设备或模拟上看到更改。...当我们运行flutter run以后,会出现一段红色文字提示,如下所示: r 键:点击后热加载,即重新加载; p 键:显示网格,可以掌握布局情况; o 键:切换Android和iOS预览模式; q

    3.6K40

    Flutter 2.8正式版发布了,还不来看看

    此外,一些开发人员想要更多关于光栅缓存行为性能跟踪信息,以减少制作动画效果的卡顿,这允许 Flutter 快速地对昂贵、重复使用图片进行复用而不是重新绘制。...上运行时,它会按你预期工作: 请注意,当前 webview_flutter web 实现有许多限制,因为它是使用 iframe 构建, iframe 仅支持简单 URL 加载,无法控制加载内容或与加载内容交互...这是对我们如何处理特定于设备键盘输入方式重新设计,以及和重构 Flutter 处理文本编辑方式持续工作补充,所有这些都是用键盘这样输入密集型桌面应用所必需。...当我们在未来几个月停用 dev 渠道,请考虑使用 beta 或 master 渠道,这取决于你对变更容忍度以及对使用「最新」还是「最好」平衡点。...诚然,我们正在为世界上越来越多开发人员构建 Flutter,但如果没有你和每位开发者存在,我们也无法维护并构建它。Flutter 社区与众不同,感谢你所做

    22.4K30

    Flutter 后台任务

    原文地址: Flutter Background Tasks ---- Flutter 是一个非常好用使用 Dart 编程语言构建漂亮移动应用程序框架,可以让 Android 和 IOS 上共用同一套代码...但是,我们都知道,Flutter 应用程序逻辑是在 Dart 端编写,这些代码可以构建 UI,还可以管理持久性数据,用户管理,网络基础架构和令牌等等。...注意 @pragma('vm:entry-point') 注释是必须,因为这个函数在 Dart 侧没有调用(它直接从本地调用),所以 AOT tree-shaking 编译在生产构建可能会将其删除...为简单起见,选择了一个 BootComplete BroadcastReceiver,在手机重新启动启动 Dart VM,但取决于您应用程序要求,您可以决定何时启动 Dart VM 正确时机:...必须说,在开始仍然发现这种方式不是最容易理解和实现(隐涩难懂),希望在未来Flutter 团队能够提出更容易解决方案。 ---- 太棒了!鼓励自己坚持到底。

    3.2K30

    【老孟FlutterFlutter 2 新增功能

    有关Flutter 2和Dart 2.12新功能以及我们客户和合作伙伴如何使用Flutter 2概述,请参阅宣布Flutter 2。...在尝试使用Flutter桌面Beta,您可以通过按预期方式切换到Beta通道并根据flutter.dev上指导为目标平台设置配置标志来访问它。此外,我们还制作了稳定通道上可用beta比特快照。...当我们接近Flutter桌面的第一个完整生产质量版本,我们知道我们还有更多工作要做,包括对与本机顶级菜单集成支持,更像各个平台体验文本编辑以及可访问性支持,以及常规错误修复和性能增强。...Flutter构建应用获利策略,以及如何在自己广告中加载广告Flutter应用。...图片发布 经过两年开发,对DartLSP(语言服务协议)支持现已作为默认方式提供给Dart分析,以将其集成到Flutter扩展Visual Studio Code中。

    7.9K20

    Flutter 1.22 正式发布

    Flutter 1.22版中,我们预览了使用Flutter构建App Clip目标。 ? 有关如何使用Flutter构建Clip更多详细信息,请查看flutter.dev上文档。...当我们确定这是最好体验,我们计划在以后版本中默认启用此标志。 新统一Dart开发人员工具 与往常一样,对Flutter更新不仅意味着引擎和框架,还包括工具。...IntelliJ中托管DevTools检查选项卡 一段时间以来,我们一直在维护某些Flutter工具两个副本,例如IntelliJ中Inspector窗格和Dart DevTools中Inspector...因此,为了解决这两个问题,我们启用了直接从IntelliJ内部Dart DevTools托管“检查选项卡功能。 ? 注意添加了Layout Explorer,您可以在代码旁边使用它。...与往常一样,此处工具更改列表太多,但是建议以下公告以了解详细信息: Dart DevTools — 0.9.0 Dart DevTools — 0.9.1 Dart DevTools — 0.9.3

    7.5K20

    Flutter学习指南App, 一起来玩Flutter吧~

    Flutter是谷歌移动UI框架,可以快速在iOS、Android、Web和PC上构建高质量原生用户界面。Flutter可以与现有的代码一起工作。...在全世界,Flutter正在被越来越多开发者和组织使用,并且Flutter是完全免费、开源。同时它也是构建未来Google Fuchsia应用主要方式。...如何入门Flutter 1.了解Android/IOS基础知识.包括平台特性、项目结构等. 2.了解Dart基础语法知识.可点击Dart中文网进行学习. 3.学习Flutter基础知识.包括组件使用、包管理...Flutter学习指南 为了能够方便大家快速学习Flutter, 简单写了一个Flutter学习指南App,包含众多组件和插件使用, 是学习和体验flutter组件小Demo....) flutterdatetimepicker (时间选择) multiimagepicker (多图片选择) jpush_flutter (极光推送) flutter_bugly (bugly统计)

    1.7K10

    Flutter 2.8 release 发布,快来看看新特性吧

    另外,以前设置默认字体管理,会在设置第一个 Dart isolate 添加人为延迟,而延迟默认字体管理Dart Isolate 设置,这样既改善了启动延迟,又使上述优化效果更加明显。...通过 Dart VM informing the OS ,内存占用进一步减少了 10% ,AOT 程序使用内存将可能不需要再次读取文件,因此,之前保存文件备份数据副本页面可以被回收并用于其他用途。...Profiling 以便更好地了解应用程序中性能问题,在应用程序启动启用,2.8 版本现在会将跟踪事件发送到 Android systrace 记录,即使 Flutter 应用程序构建在发布模式下也会发送这些事件...,指定以下 Flutter Favorites 包: 三种自定义路由包:beamer,routemaster 和 go_router drift,一个功能强大且流行 FlutterDart 响应式持久化库重命名...当 dev 在未来几个月停用该频道,请考虑 beta 或 master频道,具体取决于对问题容忍度以及对最新和最好需求。

    4.2K20

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

    Flutter创建布局只需要扩展各种Widgets并重载几个方法。 接下来我会比较Flutter和Android在构建这些功能差异。...然后,当第一次调用构建方法,开始等待Future回调返回结果。 一旦得到返回结果,构建再次被调用,我们可以用返回结果来构建我们UI。...通过构建用于加载和显示数据泛型类来实现,这使得可以重复使用电影和演出每个布局。如果用Android实现相同事情,必须为电影和演出分别使用不同Activity。...这一都让相信,Flutter不仅仅是另一个跨平台框架,而是更大开始 – 应用程序开发新时代开始。...只需要在Widget上加一些小Widgets就可以了。 可以继续下去,你可以思考一下:Android开发目前存在问题,然后考虑如何重新设计框架来解决这些问题。

    2K10

    Flutter系列(一)——详细介绍

    例如,当我们采用Dart,该语言没有提供生成原生二进制文件工具链(这对于实现可预测高性能是很有帮助),但是现在实现了,因为Dart团队为Flutter构建了它。...面向对象虽然我们可以使用非面向对象语言,但这意味着要重新解决几个难题。另外,绝大多数开发人员都具有面向对象开发经验,因此更容易学习如何使用Flutter进行开发。 可预测,高性。...Flutter应用程序性能如何Flutter应用程序性能非常出色。Flutter旨在帮助开发人员轻松实现恒定60fps。Flutter应用程序通过本机编译代码运行 - 不涉及解释。...Flutter热重载是有状态,这意味着应用程序状态在重载后仍然会保留。所以您可以在应用程序中各个页面快速迭代开发,而无需在每次重新加载后都要从主屏幕重新开始。...Flutter已经是Top20软件库,通过接下来一系列文章,希望和大家一起来学习Flutter,一起进步,一起有所收获,掌握未来技术主流主动权! 有什么好建议,意见,想法欢迎给我留言!

    1.4K10

    Flutter系列(一)——详细介绍

    例如,当我们采用Dart,该语言没有提供生成原生二进制文件工具链(这对于实现可预测高性能是很有帮助),但是现在实现了,因为Dart团队为Flutter构建了它。...面向对象虽然我们可以使用非面向对象语言,但这意味着要重新解决几个难题。另外,绝大多数开发人员都具有面向对象开发经验,因此更容易学习如何使用Flutter进行开发。 可预测,高性。...Flutter应用程序性能如何Flutter应用程序性能非常出色。Flutter旨在帮助开发人员轻松实现恒定60fps。Flutter应用程序通过本机编译代码运行 - 不涉及解释。...Flutter热重载是有状态,这意味着应用程序状态在重载后仍然会保留。所以您可以在应用程序中各个页面快速迭代开发,而无需在每次重新加载后都要从主屏幕重新开始。...Flutter已经是Top20软件库,通过接下来一系列文章,希望和大家一起来学习Flutter,一起进步,一起有所收获,掌握未来技术主流主动权! 有什么好建议,意见,想法欢迎给我留言!

    1.1K30

    Android Studio安装(小白教程)

    Flutterdart 安装完成之后,你跨平台Flutter之旅从此开始 耐心等待即可 安装结束,根据自己需要在ANDROID STUDIO里面配置添加自己需要基础环境设置,方便后续开发...接下来就是去插件市场安装Flutterdart 安装完成之后,你跨平台Flutter之旅从此开始 安装 Java JDK: 从oracle 官方页面下载并安装 Java Development...现在为您模拟设置名称并按完成按钮。 完成加载 AVD 后,按RUN按钮启动模拟。...在 Android Studio 中安装 Flutter & Dart 语言插件: 启动Android Studio 。 打开插件首选项(macOS 上首选项 > 插件。)...当提示安装Dart 插件,单击是。 单击重新启动。 重新启动 Android Studio 以进行正确配置。 下一节教大家如何创建第一个flutter程序

    1.8K20

    Flutter学习指南:编写第一个应用

    Flutter 是 Google 推出移动端跨平台开发框架,使用编程语言是 Dart。...从 React Native 到 Flutter,开发者对跨平台解决方案探索从未停止,毕竟,它可以让我们节省移动端一半的人力。...void _onPressed() { debugPrint('_onPressed'); } 保存后(会自动 Hot Reload),我们再次点击按钮,在设备上,打印出了下面这样信息: I/...我们继续: 还是 Step Over,这个时候 _roll 就返回了 切换到 Variables 这个选项卡,查看 rollResults 值 ?...虽然现在 Flutter 提供 log 工具比较简陋,可以预期未来还会进一步完善。 使用打 log 方式,好处在于不会对执行流程产生较大影响,在多线程环境尤为有用。

    1K00

    Flutter从配置安装到填坑指南详解

    build Flutter构建命令。 channel 列表或开关Flutter通道。 clean 删除构建/目录。 config 配置Flutter设置。...stop 停止在附加设备上Flutter应用。 test 对当前项目的Flutter单元测试。 trace 开始并停止跟踪运行Flutter应用程序。...---- (二) 卸载flutter之后,重新git命令安装flutter之后,然后命令行运行flutter doctor,会有以下错误(以下是填坑指路全过程): 注意:由于下载国外网站上资料...如下图所示: 然后把刚下载flutter文件夹删掉,重新执行git命令,下载flutter。...---- (五)系统重装了,flutter工具也是重新安装,由于没有备份C盘之前下载三方库,导致项目加载时候重新加载一大堆三方库,很卡,下载用了很长时间(需要访问外国网站)。

    8K50
    领券