说状态管理到底在说些什么 一个应用的状态就是当这个应用运行时存在于内存中的所有内容。当然许多状态,例如纹理、动画状态等,框架本身会替开发者管理,所以对于状态更合适的定义是“当你需要重建用户界面时所需要的数据”,我们需要自己管理的状态可以分为两种概念类型:短时 (ephemeral) 状态和应用 (app) 状态。 短时状态 短时状态是可以完全包含在一个独立 widget 中的状态,也成为局部状态。 一个 PageView 组件中的当前页面 一个复杂动画中当前进度 一个 BottomNavigationBar 中当前…

2022年9月26日 0条评论 424点热度 0人点赞 小小调酒师 阅读全文

最近使用Flutter开发项目,看了一些网博客文章和B站上关于Getx的解说,都特么的太垃圾了。下面是简单的例子,可以很好地理解可观察变量的一些基础性概念。 一、可观察变量的声明和赋值,对应地刷新界面的几种方式 main(){ runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext cont…

2022年9月26日 0条评论 374点热度 0人点赞 小小调酒师 阅读全文

1、获取单聊消息 class MessageController extends GetxController{ var messages = <Message>[].obs; Future getMessage(String uid ) async { List<Message> recMessages = await OpenIM.iMManager.messageManager.getHistoryMessageList( userID: uid, // 单聊对象的userID gro…

2022年9月25日 0条评论 363点热度 0人点赞 小小调酒师 阅读全文

界面效果 class Manager{ //单例变量 static Manager? _instance; //命名构造函数 Manager._internal(){ //初始化 } //创建实例 static Manager _getInstance(){ _instance ??= Manager._internal(); return _instance!; } //无参构造函数也是从_getInstance()获得实例 factory Manager() => _getInstance(); //对外…

2022年9月17日 0条评论 412点热度 0人点赞 小小调酒师 阅读全文

效果图: 1、简单的dio封装类:MyHttpRequest import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'dio_response.dart'; class MyHttpRequest{ static const int _connectTimeout = 6*1000; static const int _receiveTimeout = 6…

2022年9月15日 0条评论 457点热度 0人点赞 小小调酒师 阅读全文

library sp_util; import 'dart:async'; import 'dart:convert'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:synchronized/synchronized.dart'; class SpUtil { static SpUtil? _singleton; static …

2022年8月29日 0条评论 370点热度 0人点赞 小小调酒师 阅读全文

创建后的项目想要运行web端,使用如下命令 开启web flutter config --enable-web true 开启 enable-macos-desktop flutter config --enable-macos-desktop flutter config --enable-macos-desktop true 查看是否都已经开启 flutter config 把两个值都变成true 后,目录结构应该多出一个web的目录 由于构建的时候并没有打开这两个配置,则需要重新使用命令,当前目录重新构建 f…

2022年8月19日 0条评论 516点热度 0人点赞 小小调酒师 阅读全文

1、首先,创建全局常量类constants,用于设置背景色、默认内边距等。 const kPrimaryColor = Color(0xFF6F35A5); const kPrimaryLightColor = Color(0xFFF1E6FF); const double defaultPadding = 16.0; 2、在项目根目录下创建assets文件夹,添加图片。如下图所示: 3、在配置文件添加svg图片插件库: flutter_svg: ^1.1.0 4、创建引导页--测试 import 'pa…

2022年8月18日 0条评论 480点热度 0人点赞 小小调酒师 阅读全文

Flutter开发遇到:No signature of method...的问题 A problem occurred evaluating project ':app'. > No signature of method: build_eks0uecnbo0o3g3yedoatk0y.android() is applicable 原因分析:从错误信息来看,其实是说你的build.gradle 脚本内容错误,一般是在各个闭包中,添加了不正确的已知闭包实现。 例如 android{} 闭包…

2022年8月9日 0条评论 657点热度 0人点赞 小小调酒师 阅读全文

效果图: Stack({ Key? key, this.alignment = AlignmentDirectional.topStart, this.textDirection, this.fit = StackFit.loose, this.clipBehavior = Clip.hardEdge, List<Widget> children = const <Widget>[], }) Stack: alignment:作用于没有指定横轴或者纵轴位置的子元素。 fit:StackFit…

2022年8月7日 0条评论 559点热度 0人点赞 小小调酒师 阅读全文