
Flutter 进阶
文章平均质量分 61
本栏目主要发布日常开发中的一些组件封装框架进阶等
半身风雪
九年码农,移动全栈领域优质创作者,华为云专家,阿里云专家博主,51CTO专家博主。立志打造一条架构路的博主
展开
-
flutter 文件下载及存储路径
日常开发中,经常会遇到下载文件的功能,往往我们在需要保存文件的路径上去调试,比如Android中的路径,有些会报错在SD卡中,但是有些手机,又没有SD卡,那么我们该怎么办呢?原创 2024-01-11 14:21:41 · 3765 阅读 · 0 评论 -
flutter 自定义TabBar 【top 0 级别】
在日常开发中,tab 标签选项,是一个我们特别常用的一个组件了,往往我们在一个项目中,有很多地方会使用到它,每次单独去写,真的是太繁琐,这里我会定义一个通用的tab 选择器,喜欢的朋友可以拿去试试简简单单一个widget,复制粘贴直接用,废话不多说,啥?没有写怎么调用?不知道怎么调用,你还是去看看前面的文章吧。原创 2023-12-01 17:13:51 · 3074 阅读 · 0 评论 -
flutter 文本不随系统设置而改变大小[最全的整理]
在flutter 越来越来的平台适配中,最常见的一直场景就是,修改了设备的字体大小或者样式,从而导致整个APP 的适配变形等情况的出现,对于这种问题的解决方案,当然就是限制字体了,但是如果一概而论的话,又不太适合,毕竟产品可不管你方不方便的,这里我整理了绝大部分的场景使用方案通过使用自定义的字体缩放比例,你可以在应用的全局范围内设置字体大小,而不受系统字体大小变化的影响。这可以通过设置TextTheme的bodyText2的属性来实现。@override。原创 2023-11-28 15:59:20 · 1857 阅读 · 2 评论 -
flutter 文本不随系统设置而改变大小[最全的整理]
在flutter 越来越来的平台适配中,最常见的一直场景就是,修改了设备的字体大小或者样式,从而导致整个APP 的适配变形等情况的出现,对于这种问题的解决方案,当然就是限制字体了,但是如果一概而论的话,又不太适合,毕竟产品可不管你方不方便的,这里我整理了绝大部分的场景使用方案通过自定义文本样式,你可以直接设置字体大小,确保文本不受系统字体大小的影响。@override@override),fontSize: 16.0, // 设置一个基础的字体大小),),),在这个例子中,直接在。原创 2023-11-28 16:01:08 · 1042 阅读 · 0 评论 -
flutter 文本不随系统设置而改变大小[最全的整理]
在flutter 越来越来的平台适配中,最常见的一直场景就是,修改了设备的字体大小或者样式,从而导致整个APP 的适配变形等情况的出现,对于这种问题的解决方案,当然就是限制字体了,但是如果一概而论的话,又不太适合,毕竟产品可不管你方不方便的,这里我整理了绝大部分的场景使用方案创建一个自定义的小部件,该小部件在内部处理文本比例因子的调整。@override@override),),),@overridetext,fontSize: 16.0, // 设置一个基础的字体大小),原创 2023-11-28 15:57:27 · 2420 阅读 · 9 评论 -
flutter 文本不随系统设置而改变大小[最全的整理]
在flutter 越来越来的平台适配中,最常见的一直场景就是,修改了设备的字体大小或者样式,从而导致整个APP 的适配变形等情况的出现,对于这种问题的解决方案,当然就是限制字体了,但是如果一概而论的话,又不太适合,毕竟产品可不管你方不方便的,这里我整理了绝大部分的场景使用方案通过自定义文本缩放因子,你可以在应用的全局范围内设置文本的大小,而不受系统字体大小变化的影响。这可以通过设置TextTheme的bodyText2的属性来实现。@override。原创 2023-11-28 16:02:39 · 1737 阅读 · 1 评论 -
flutter iOS 视频mov格式转MP4格式
今天在写项目的时候,突然发现iOS 里面的有些视频格式是mov的格式,这就导致在视频播放组件无法播放的问题,期间试过替换视频格式,但是又不想存储文件的中间路径,最终想到我使用过视频压缩的功能,就直接在这个压缩的基础上去做了更改,下面是最终代码。简单又粗暴,直接去解决问题,有什么不懂的问题,可以直接留言给我。原创 2023-11-21 10:26:23 · 1337 阅读 · 0 评论 -
一文读懂flutter线程: 深入了解Flutter中的多线程编程
在移动应用开发领域,Flutter已经成为了一个备受欢迎的框架,用于创建高性能、跨平台的应用程序。Flutter的一个关键特性是其能够轻松处理多线程编程,以改进应用程序的性能和响应性。本文将深入探讨Flutter中的多线程编程,包括为什么需要多线程、如何在Flutter中创建和管理线程以及一些最佳实践。Flutter的多线程编程为开发者提供了更多控制应用程序性能和响应性的机会。然而,要谨慎使用多线程,以避免潜在的问题。原创 2023-10-13 11:00:39 · 3337 阅读 · 9 评论 -
程序员的注释之争:缘起与解决
编程世界中存在着一个看似无法调和的争议:代码注释。有人认为,写代码不写注释就是在耍流氓,而另一些人则认为自己写代码时写注释是多余的。这一争论引发了广泛的讨论,涉及了代码质量、开发效率、团队合作以及最终产品的可维护性等多个方面。本文将探讨这一现象,讨论它的背后原因,并提出解决方案,以帮助程序员更好地管理和理解注释的角色。在程序员之间的注释争议中,没有绝对的答案。代码注释不是一种银弹,但也不应被忽视。合理的注释可以提高代码质量、可维护性、安全性和可读性,同时也有助于团队协作和知识传承。原创 2023-10-12 16:27:58 · 363 阅读 · 9 评论 -
当你的公司突然开始大量的裁员,被留下的你,真的准备好面对以后了吗?
未来如何,谁也不知道,是量力而行,还是负重而行,永远是一个沉重的话题。(人生短暂,匆匆而过,青春已逝,中年已到,还有太多想去的未去,想做的未做,究竟为何而坚持)愿未来的某一天,当我再打开这篇文章的时候,是去过,做过,看过之后再点开的,而不是在思考,困惑,迷茫中打开原创 2023-09-13 17:49:44 · 700 阅读 · 9 评论 -
flutter 中的动画详解 全网最全 动画一篇搞定 一万四千字
学习 Flutter 中的动画和过渡是构建流畅用户界面的关键部分之一。这里我整理了一个主要的学习路径,可以帮助你逐步掌握 Flutter 中的动画和过渡技术,希望能够帮助到你自定义动画(Custom Animations)是指通过自定义代码来实现特定的动画效果,以满足特定的设计需求。在 Flutter 中,你可以使用来绘制自定义的图形,或使用封装动画逻辑,从而创建高度自定义的动画效果。使用可以绘制自定义的图形和动画。你需要实现类并重写paint方法,在其中定义绘制逻辑。@override。原创 2023-08-16 10:34:20 · 3933 阅读 · 5 评论 -
flutter tabBar 的属性及自定义实现
在Flutter中,TabBar的indicatorPadding属性用于设置指示器的内边距,而不是用于调整指示器和文字之间的间距。要调整TabBar中指示器和文字之间的间距,本篇文章主要讲解如何自定义indicatorPadding的边距问题。方法 1: 使用TabBar的indicator属性自定义指示器样式 你可以通过自定义指示器的Widget来实现调整指示器和文字之间的间距。原创 2023-07-06 13:51:36 · 5253 阅读 · 2 评论 -
flutter RepaintBoundary 截屏图片下载,保存图片不清晰的问题
最近工作中,突然遇到截屏保存图片的问题,但是保存下来的图片,一直都非常的模糊,最后看源码才发现,可以直接设置image 的pixelRatio分辨率来解决,下面是完整的图片截屏保存方法请注意,这只是一个基本示例,你可能需要根据你的具体需求进行调整。另外,确保你已在文件中添加了插件的依赖。原创 2023-07-06 09:17:34 · 3565 阅读 · 17 评论 -
flutter 数组数据去重终极解决方案
在 Flutter 应用程序开发中,处理数据的去重是一个常见的任务。本文将详细介绍 Flutter 中的各种数据去重方法,包括使用 Set、fold 方法、where 方法、自定义函数以及使用第三方库等不同的技巧。每种方法都将提供示例代码和解释,帮助您理解和应用这些方法,以满足不同的需求。数组去重是指从一个包含重复元素的数组中,将重复的元素去除,得到一个只包含唯一元素的新数组。在去重后的数组中,每个元素都是唯一的,不会存在重复的情况。通常情况下,数组去重是为了简化数据,减少重复信息或提高数据处理的效率。原创 2023-06-28 11:58:50 · 3420 阅读 · 5 评论 -
Getx PageView 保持页面状态
在使用Get作为状态管理工具时,我的页面继承了GetView,在做首页时需要多个页面,但是继承了GetView的页面不能再继承AutomaticKeepAliveClientMixin,这就导致切换页面会会刷新.我也不想将GetView改成StatefulWidget,本篇文章是我找到的解决方案Key?这里就是一个很简单的StatefulWidget,它with 了AutomaticKeepAliveClientMixin,然后接收一个child 参数。原创 2023-03-31 11:24:45 · 2174 阅读 · 1 评论 -
Mac 配置环境变量报错 -bash command not found
配置flutter环境变量的时候,不知道怎么回事,突然出现-bash command not found问题,环境变量无法打开的BUG,多方查询网络,终于解决问题。原创 2023-01-05 15:22:18 · 2172 阅读 · 7 评论 -
flutter 并不完美的登录完美验证功能
在一个APP 中,登录页面做为门户,很多时候,我们都需要写一个完善的登录验证页面,本篇文章将记录如何去封装一个并不算完美的登录验证页面。原创 2022-12-29 15:52:51 · 3518 阅读 · 37 评论 -
flutter 自定义加载中间页 loading 菊花组件的封装
在日常移动开发中,很多时候需要我们添加一个加载中间页,即加载中,加载失败,加载重试,加载完成等功能,这样可以避免在无网或者弱网情况下,导致无法加载完整UI界面,这样的影响是非常不好的。原创 2022-12-05 14:33:07 · 3038 阅读 · 19 评论 -
flutter 怎么消除按钮事件的点击溅射背景
在flutter 中,大部分事件组件都有一个溅射背影,但是假如某天需求让我们取消点击溅射效果,我们该怎么办呢?本篇文章将记录怎么取消溅射效果。原创 2022-11-24 10:34:45 · 2579 阅读 · 6 评论 -
flutter 验证码输入框的简单封装
本篇文章的记录就到这里结束了,在使用的时候,当我们输入第一个数字之后,将自动跳转到下一个,一直到最后一个数字的输入,就可以进入验证阶段了。原创 2022-11-23 17:28:24 · 1777 阅读 · 4 评论 -
flutter 瀑布流布局实现
瀑布流插件flutter_staggered_grid_view: 0.4.1网络缓存图片插件cached_network_image: ^3.1.0+1Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('瀑布流'), centerTitle: true, ), body: Center( chi原创 2021-11-26 11:11:12 · 572 阅读 · 0 评论 -
flutter 点击位置弹出菜单栏(仿微信文本长按位置下方弹出菜单)
代码:import ‘package:flutter/material.dart’;class PopupMenu extends StatefulWidget {@overrideState createState() => _PopupMenuState();}class _PopupMenuState extends State {Color bgColor = Co...转载 2019-12-11 17:41:46 · 2799 阅读 · 0 评论 -
flutter 状态栏 AppBar 设置透明和半透明
在日常开发中,很多时候,我们需要把状态栏设置成透明和半透明的状态,本篇文章将记录最简单最实用的设置方式。原创 2019-11-18 15:22:44 · 8269 阅读 · 2 评论 -
Flutter 验证字符是否为空
在日常开发中,可能存在必须检查给定字符串是null还是empty的情况。那么我们如何去验证呢?这里我将记录一个我自己封装的验证方法。原创 2019-11-05 16:29:35 · 3411 阅读 · 1 评论 -
flutter 仿京东首页 吸顶功能
直接上代码CustomScrollView( slivers: <Widget>[ SliverAppBar( pinned: true, expandedHeight: 200.0, centerTitle: true, automaticallyImplyLeading: true, primary: true, l原创 2021-12-24 11:02:15 · 2475 阅读 · 0 评论 -
flutter 随机数的生成 四舍五入
关于随机数的生成,在开发语言中,是非常常见的一种使用数据,那么在dart 语言中,我们该怎么来生成随机数呢?有该怎么来限制随机数的范围呢?本篇文章将记录随机数的相关知识点。原创 2022-11-21 16:52:16 · 3055 阅读 · 0 评论 -
flutter 使用getx 框架系统日历 showDatePicker && selectTimeWidget 多语言切换终极解决方案
最近一段时间,写了一个项目,使用的getx 框架,但是在使用系统日历的时候,需求需要日历有多语言功能,但是showDatePicker 日历组件,无法使用getx 里面的Locale 设置,强制使用的话,只会崩溃报错,报错原因就是需要我们在MaterialApp 里面配置多语言。下面是我给如上问题的一些解决方案,如果你有更好的方式,请留言告知,万分感谢showDatePicker() 方法用于弹出一个日期选择器的对话框,对话框会有一个默认的样式,当然,我们也可以使用builder 来自定义样式,如下列表中的原创 2022-11-03 15:56:24 · 2140 阅读 · 1 评论 -
flutter 数组筛查功能实现
前一段时间,项目需要进行数组筛查工作,需要将一个大数组中的某些相同数据,筛查出来并分组,本篇文章将记录我的数据筛查文档原创 2022-11-21 14:02:35 · 3681 阅读 · 0 评论 -
iOS 项目 IPA 包重新签名解决方案
时,原来文件夹中的.ipa已经被重签名了。1、在自己的电脑上安装发布证书(这里不介绍,需要的请自行百度),安装后在钥匙串访问-登录-我的证书下面会看到这个证书,类似 iPhone Distribution:xxxxxxx(xxxxxx) ,选中后查看简介,设置信任为使用系统默认,注意不要设置为始终信任,若设置为始终信任,在使用重签名命令时会提示错误(后面会介绍这个错误)解决办法:将钥匙串访问-登录-我的证书下面的发布证书,从始终信任改为使用系统默认(若发现修改成使用系统默认后显示红色,请更新苹果根证书);原创 2022-10-29 02:42:45 · 1875 阅读 · 6 评论 -
flutter 中最简单的排序 sort
在日常开发中,很多地方,都需要使用排序功能,比如列表数据的展示,通过时间,编号,首字母等等排序方式,本篇文章将记录使用sort 来做list 中最简单的排序原创 2022-11-21 13:29:16 · 2969 阅读 · 0 评论 -
仿苹果 底部弹窗 选择列表
showDialog(barrierDismissible: true,//是否点击空白区域关闭对话框,默认为true,可以关闭context: context,builder: (BuildContext context) {var list = List();list.add(‘拍摄照片’);list.add(‘从相册选取’);list.add(‘选择文件’);return ...原创 2019-11-27 11:15:03 · 2267 阅读 · 0 评论 -
flutter 合并数组及操作符
前面我写过dart 语言的10天速成攻略,在文章中,介绍了很多dart 中的相关操作符,本篇文章,主要记录一下在数据中,如何使用合并操作符。原创 2022-11-21 17:15:35 · 1576 阅读 · 0 评论 -
flutter AnimatedSwitcher 动画切换过渡组件 跑马灯动画封装
本篇文章将记录 AnimatedSwitcher 过渡组件,这个组件动画是一个新的小部件来代替另一个。它提供了一个很好的过渡,使应用程序非常流畅。始终为其子小部件添加一个键以确保其正常工作。原创 2022-11-22 11:54:05 · 2099 阅读 · 22 评论 -
Flutter Text文本不随系统字体大小而改变
我们通过在state的build函数中,builder属性设置MediaQuery的textScaleFactor固定为1.0,这样整个flutter项目中的文字的缩放率都变成了1.0,就不会再随系统改变了。原创 2019-11-11 11:09:02 · 1484 阅读 · 0 评论 -
flutter HEX 色值,转换成RGBO 格式
话不多说,直接上代码,拿过去就能使用static Color hexStringColor(String colorString, {double alpha = 1}) { if (alpha < 0) { alpha = 0; } else if (alpha > 1) { alpha = 1; } String colorStr = colorString; if (!colorStr.startsWith('0xff')原创 2021-11-26 14:34:09 · 4852 阅读 · 0 评论 -
flutter 简单实现瀑布流 上拉加载,下拉刷新
使用组件上拉加载,下拉刷新组件flutter_easyrefresh: 2.2.1下面直接上代码Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('瀑布流'), centerTitle: true, ), body: EasyRefresh( onRefresh: () async {原创 2021-11-26 13:53:53 · 4985 阅读 · 3 评论 -
flutter Text 下划线,删除线,虚线,加粗,斜体等设置方案
先看效果图import 'package:flutter/material.dart';void main(){ runApp( MaterialApp( title:'Text Demo', home:ContainerDemo() ), );}class ContainerDemo extends StatelessWidget { @override Widget build(BuildContext context) {原创 2019-12-11 15:46:41 · 19808 阅读 · 3 评论 -
flutter Firestore 时间戳 终极解决方案
在日常工作中,我们其实很少遇到,需要解析Google firestore 格式的时间戳的问题,正好我前一段时间遇到了,在此分享一下,我解析 Timestamp(seconds=1556459022, nanosecond=0) 时间戳的方法,然而这种时间格式,并不是我们常用的格林威治时间格式,那么我们该怎么来解析呢?原创 2022-11-07 15:11:17 · 1063 阅读 · 0 评论 -
The application‘s Info.plist does not contain a valid CFBundleVersion. 终极解决方案
An error was encountered processing the command (domain=NSPOSIXErrorDomain, code=22):Failed to install the requested applicationThe application's Info.plist does not contain a valid CFBundleVersion.Ensure your bundle contains a valid CFBundleVersion.原创 2022-09-02 10:36:08 · 3387 阅读 · 4 评论 -
flutter dio 请求封装,4.0.0 空认证 版本
1、先写拦截器,我这里分开写的请求拦截器import 'package:dio/dio.dart';/// 错误处理拦截器class RequestInterceptor extends Interceptor { @override void onRequest(RequestOptions options, RequestInterceptorHandler handler) { options.copyWith( headers: { "Conte原创 2021-11-30 15:22:43 · 3077 阅读 · 3 评论