草庐IT

Flutter开发③——组件

目录Container容器组件decoration属性 padding和maring属性transform属性Text组件 TextStyle参数图片组件Container实现圆形图片 ClipOval实现圆形图片 加载本地图片 图标组件自带的Icons图标借助阿里巴巴图标库自定义字体图标ListView列表组件垂直列表水平列表可左右滑动 动态列表 通过ListView的构造函数builder来生成动态列表GridView网格组件GridView.count GridView.extend动态生成GridView.builder实现动态列表页面布局PaddingRowColumnFlexExp

Android Studio targetApi=33 android 13 setAppCacheEnabled/setAppCachePath/setAppCacheMaxSize 报红问题探究

报红如下可以看到即使加了Api版本判断依然是报红的编译后有如下类似错误提示Launchinglib/main.dartonsdkgphone64arm64indebugmode.../Users/dararii/Dev/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_inappwebview-5.4.3+7/android/src/main/java/com/pichillilorenzo/flutter_inappwebview/in_app_webview/InAppWebView.java:280:error:cannotfindsy

flutter更新后[VERBOSE-2:FlutterDarwinContextMetalImpeller.mm(35)] Using the Impeller rendering backend,

 在更新Flutter3.10.0后编译项目出现上线这样的提示,原因是在Flutter3.10.0后iOS默认使用开始使用Impeller 。在3.7版本中Impeller就被引入用于未来替换Skia,Flutter团队面对Skia上越来越多的问题无法有效快速推进,所以走上了自研Impeller的道路。关闭这个提示,只需把plist里的 FLTEnableImpeller 设置为 false。如下面这样就ok了。 ...//省略代码 FLTEnableImpeller ...//省略代码

flutter的setState详细分析以及性能优化

Flutter的setState()方法是用于更新widget状态的。在Flutter中,widget通常被描述为不可变的对象,当widget的状态发生改变时,Flutter会创建一个新的widget,并将其与之前的widget进行比较,然后进行重建。因此,使用setState()方法可以告诉Flutter重新构建当前widget的子树。setState()方法的源码非常简单,它只是将一个回调函数放入队列中,以便在下一帧中调用它,如下所示:voidsetState(VoidCallbackfn){assert(fn!=null);assert((){if(_debugLifecycleStat

Claude:除ChatGPT外的另一种选择

前言Claude是Anthropic开发的人工智能产品。Anthropic是由11名前OpenAI员工于2022年创立的人工智能公司,旨在构建安全、可解释和有益于人类的人工智能系统。Claude是该公司的第一个产品,得到了谷歌3亿美元的投资。与ChatGPT有什么区别如上是Claude给出的回答,简单概括:ChatGPT扯淡更流畅,Claude专业问题回答优势更大。不管啥区别吧,对笔者来说,用户来说多一种OpenAI选择是好的现象,百家争鸣比一家独大好。下面手把手教你如何注册和使用Claude。这里分为两步:首先注册Slack接着是将Claude添加到Slack中。实施步骤如下。一.注册Sla

Flutter 绘制番外 | 将你的 Canvas 绘制保存为图片

theme:cyanosis前言光阴似箭,《Flutter绘制指南-妙笔生花》转眼间已经发布两年半了,不知道各位练习得怎么样。有不少朋友问过如何将Canvas绘制的内容保存为图片,最近在做的东西刚好涉及了这块,通过本文来分享一下。提到保存图片,很多人可能会想到RepaintBoundary,但它使用起来有点繁琐,同时也存在一些局限性。而且Canvas有更灵活的生成图片方式,没有必要使用RepaintBoundary,下面一起来看看吧!1.自己创建Canvas对象如果我问:如何得到Canvas对象,来进行绘制操作?可能绝大多数朋友都知道继承自CustomPainter,在paint回调中获取Ca

flutter开发实战-应用更新apk下载、安装apk、启动应用实现

flutter开发实战-应用更新apk下载、安装apk、启动应用实现在开发过程中,经常遇到需要更新下载新版本的apk文件,之后进行应用更新apk下载、安装apk、启动应用。我们在flutter工程中实现下载apk,判断当前版本与需要更新安装的版本进行比对判断,通过判断VersionCode来确定下载新版版APK一、应用更新apk下载当应用需要更新的时候,我们需要判断版本号,在flutter工程中versionCode是工程中的pubspec.yaml中的version确定的。如version:1.0.0+1version为1.0.0,versionCode为1需要我们获取接口,需要判断的就是v

flutter 实战 之 GridView

GridView和ListView是Flutter中用于构建滚动列表的两种常见小部件。它们之间的主要区别在于它们的布局方式和如何显示其子小部件。布局方式:ListView是单列或单行的滚动列表,它垂直或水平滚动。可以根据需要垂直排列或水平排列子小部件。GridView是一个二维网格列表,可以在垂直和水平方向上滚动。子小部件以行和列的形式进行排列。子小部件排列:ListView的子小部件是单列(或单行)排列的,依次从顶部到底部(或从左到右)排列。它适合于在一个方向上展示大量垂直或水平排列的数据。GridView的子小部件是以二维网格的形式排列的,可以按行或列展示。根据不同的构造函数,可以设置子小

flutter中数据库(Drift)的使用

前言Flutter目前比较好用的sqlite数据库orm框架就是drift(以前叫作moor),由于dart语言不支持反射,这个框架使用了dart代码生成器,自动生成代码。这个数据库框架的优点是支持全平台使用,此框架通过使用datr语言的ffi功能(相当于JAVA的jni)来调用sqlite动态库实现数据库操作,Web平台是通过wasm(浏览器可以运行的二进制文件,可由C、C++、rust、go等语言编译而来)来调用sqlite,Web平台的sqlite数据库文件则通过indexeddb虚拟文件系统保存。官方文档https://drift.simonbinder.eu/docs/platfor

封装flutter webview页面

例如在flutter里面跳转百度页面需要安装webview_flutterwebview_page.dartimport'package:flutter/material.dart';import'package:webview_flutter/webview_flutter.dart';classMyWebViewextendsStatefulWidget{constMyWebView({super.key,requiredthis.webViewUrl,this.webViewTitle=''});finalStringwebViewUrl;finalStringwebViewTitle;