自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Flutter实现国际化(多语言)

Flutter 提供了强大的国际化(i18n)支持,可以通过 flutter_localizations 与 gen-l10n 工具生成的本地化类来实现不同区域和语言的适配。本篇博客将介绍如何在 Flutter 项目中使用 flutter_localizations,并实现多语言支持与动态切换。它包含了将软件中的文本、日期、时间等元素抽象出来,以便根据用户的区域设置进行翻译和显示。是国际化的具体应用步骤,它包括将应用程序的语言、日期格式、货币符号等内容适配到特定地区。

2024-09-20 09:51:47 5011 5

原创 Flutter 指纹识别

通过本文,我们介绍了如何使用local_auth插件实现 Flutter 应用中的指纹识别功能。通过设置合适的配置和调用插件提供的 API,你可以轻松地在 Android 和 iOS 设备上实现生物识别验证功能。

2024-11-28 14:14:00 1799

原创 Flutter 扫描二维码

本文展示了如何在 Flutter 中实现二维码扫描和从相册选择二维码图片的功能。通过使用scan和插件,我们可以轻松地添加二维码扫描和图片识别功能。在开发实际应用时,可能还需要处理更多细节,例如处理不同平台的权限请求、优化扫描体验等。希望这篇文章能帮助你更好地理解如何在 Flutter 中实现二维码扫描功能,并能够应用到你的项目中。

2024-11-19 15:58:22 3024 9

原创 Flutter 生成二维码

在这篇博客中,我们将学习如何使用 Flutter 创建二维码,并实现一些常见的自定义选项。通过使用qr_flutter插件,我们可以轻松地生成基本二维码,甚至可以将图片嵌入二维码中。最终的效果将包括两个二维码:一个是普通二维码,另一个是带有嵌入图片的二维码。此外,我们还将实现一个文本输入框,用户可以动态修改二维码内容。

2024-11-19 14:27:18 778

原创 Flutter Getx状态管理

GetX是一个为 Flutter 提供的高效且轻量级的状态管理库。它不仅支持响应式状态管理,还提供了路由管理、依赖注入等功能。GetX 的优势在于其简单易用,性能非常高,而且代码量少。使用Get.put来创建和注册控制器,Obx用于响应式 UI 更新,而GetBuilder则用于手动控制 UI 更新。通过Get.find可以在多个页面中共享同一个控制器实例,从而确保应用状态的一致性。通过 GetX,Flutter 开发变得更加简单和高效,尤其在处理复杂的应用状态时,它能轻松地管理和更新状态。

2024-11-13 10:56:56 1155

原创 Flutter 项目一键打包多个渠道包的实现

在移动开发中,通常需要对应用进行不同渠道的打包,以满足多平台推广需求。运行后,会在 build/app/outputs/flutter-apk/ 目录下生成不同渠道的 APK 文件,文件名格式为 test_1.0.0_.apk。:打包完成后,脚本会将生成的 app-release.apk 重命名为 test_版本号_渠道名.apk,以便区分不同渠道的 APK 文件。本文介绍了如何通过 Flutter 和 Shell 脚本实现自动化渠道打包,节省了手动切换渠道标识的时间,方便后续的渠道分发和管理。

2024-10-31 15:25:21 1413 1

原创 Flutter 获取设备唯一标识

iOS:• 我们使用 device_info_plus 插件来获取设备的 identifierForVendor,它是 iOS 提供的唯一标识符,用于标识设备的应用程序。Android:• 由于 Android 在 10 版本之后移除了对 Build.SERIAL 的访问权限,我们只能通过 Settings.Secure.ANDROID_ID 获取 Android ID,然后将其与设备的序列号(如果可用)拼接起来生成一个唯一标识。

2024-10-12 17:35:42 1821

原创 Flutter 动态主题切换与自定义主题

Flutter 是一个跨平台的开发框架,支持多种平台的 UI 开发。在现代应用中,用户对个性化体验的需求越来越高,因此支持多种主题模式的应用成为了标准。在这篇文章中,我们将通过代码示例,演示如何实现 Flutter 中的动态主题切换,包括亮色模式、深色模式以及自定义主题模式,带你深入理解如何灵活控制应用的外观风格。自定义颜色这里我举例用的是scaffoldBackgroundColor作为背景颜色,如果想要对应的按钮、字体、分割线等等颜色 可以进去ThemeData里面看对应的名称,想要的东西对应的都有。

2024-10-10 14:19:51 1573

原创 Flutter 自定义国家选择器:基于 A ~ Z字母索引的列表跳转与侧边栏导航实现

在许多移动应用中,我们经常需要通过字母索引快速跳转到目标位置,比如通讯录、国家选择等功能。这篇博客将带大家实现一个仿照通讯录的 Flutter 国家选择器。通过一个字母索引的侧边栏,用户可以快速跳转到目标字母分组。

2024-09-24 10:15:45 1152

原创 Flutter 仿微信/QQ 消息侧滑功能实现:使用 flutter_slidable

是一个 Flutter 插件,用于在列表项中添加左右滑动操作,常用于实现类似微信/QQ 消息界面的侧滑删除、置顶等功能。它提供了多种配置方式,使得我们可以自由定义滑动手势和按钮。我们可以根据需求自定义按钮的样式、动画和操作逻辑。例如,使用使侧滑更符合用户的操作习惯。上面的例子中,我们使用了进行左滑操作,也可以用做右滑操作。你还可以根据 UI 需求,自定义按钮的颜色、图标等。// 自定义的 SlidableAction}) {

2024-09-23 13:31:39 1007 2

原创 Flutter 实现跨平台 UDP 广播:Android 与 iOS 平台的网络通信差异

在 Android 上,UDP 广播可以直接使用 255.255.255.255,而在 iOS 上,需要手动修改设备的 IP 地址以符合局域网广播的规则。通过它,开发者可以绑定到指定的 IP 地址和端口,然后发送广播数据。在这里,我们将设备的 IP 地址(例如 192.168.1.10)的最后一部分替换为 255,形成 192.168.1.255,以此作为局域网的广播地址。在 Android 平台上,我们可以使用标准的 255.255.255.255 来进行广播,它会自动将数据广播到局域网中的所有设备。

2024-09-21 14:53:48 783

原创 Flutter实现仿微信消息弹窗的效果

本文通过使用GetX的Snackbar功能,封装了一个仿微信消息弹窗的效果。通过自定义的布局、毛玻璃背景效果和圆角图片,我们实现了仿微信的消息弹窗。接下来,我们通过封装一个自定义的showCodeSnackBar方法来实现消息弹窗的显示。Snackbar的布局会包含一个带圆角的图标、消息标题、消息内容,同时使用毛玻璃背景效果来增强弹窗的视觉体验。而为了提高用户体验,通知的展示效果往往是我们关注的重点。本文将使用Flutter框架以及GetX的Snackbar功能,来实现一个类似微信的消息弹窗效果。

2024-09-20 14:33:15 793

原创 Flutter中使用Sqflite封装数据库操作与更新管理

本篇文章将介绍如何封装增删改查、数据库版本控制与更新的处理,以及如何将查询结果映射到实体类。通过对sqflite的封装,我们可以使数据库操作变得更加简洁高效,特别是在处理复杂的增删改查操作时。当我们需要修改数据库结构(比如添加字段、删除表或修改表结构)时,数据库的版本号需要增加,并在onUpgrade方法中处理结构变更。首先,我们需要初始化数据库,并创建表。下面的代码展示了如何初始化数据库,并在数据库创建时,执行多张表的创建。在查询大量数据时,可以将查询结果封装成一个集合,并映射为实体类对象。

2024-09-19 11:13:41 1216

原创 Flutter 自定义 Switch 组件:实现自定义宽高与滑动动画效果

特别是当你想要完全控制开关的尺寸、颜色和滑动动画时,使用 Container 或 Transform.scale包裹 CupertinoSwitch 的方式可能无法达到理想的效果。在 Flutter 中,虽然原生的 CupertinoSwitch 很强大,但当我们需要自定义开关的宽高、颜色或者交互动画时,创建一个自定义的 Switch 组件能够带来更多的灵活性。通过上面的代码示例,你可以轻松实现自定义的开关组件,不仅可以控制它的外观,还能享受更流畅的动画效果。

2024-09-19 09:08:49 1206 2

原创 自定义 Flutter PageView 的指示器动画效果

然而,默认的 TabBarView 有一些局限性,比如当 Tab 标签长度不一时,指示器长度不好丝滑的动态调整到固定长度;为了实现自定义指示器的长度和动画效果,我们需要对 TabBar 进行封装,并通过 PageView 实现更灵活的动画控制。我们将创建一个 CustomCommonTabBar 组件,它能够根据标签的实际长度动态调整指示器的宽度,并在标签切换时,添加指示器的平滑过渡动画。使用 PageView 和 GlobalKey,我们可以精确控制指示器的宽度,并实现平滑的过渡动画。

2024-09-18 17:38:08 645

原创 Flutter 使用 TabBarView 和 PageView 时保持页面状态:AutomaticKeepAliveClientMixin

在 Flutter 开发中,TabBarView 和 PageView 是常用的多页面视图组件,它们支持懒加载功能,即用户在切换页面时,只有当前可见的页面会被构建,其他页面不会被加载以节省资源。然而,这也会导致一个常见的问题:当我们从一个页面切换到另一个页面并返回时,先前的页面可能会被销毁并重新构建,这样页面的滚动位置、表单数据等状态就会丢失。通过使用 AutomaticKeepAliveClientMixin,我们可以确保当用户切换到其他页面并返回时,页面的状态(如列表滚动位置、用户输入等)不会丢失。

2024-09-18 17:07:15 1760

原创 Flutter 输入框在iOS打开密码填充后会闪烁问题

iOS如果在设置中打开了【自动填充密码】就会显示出这个密码栏,输入时会一闪一闪的。【原因】:在TextField里,只要obscureText为true时,也就是密码框显示全是【•】时,iOS的密码填充栏就会显示出来。

2024-09-14 17:17:39 976

原创 Flutter flutter_native_splash启动页配置

#Android12以上没有效果:会出现icon启动图;Android12以下才展示设置的launch背景图# dart run flutter_native_splash:createflutter_native_splash: background_image: "assets/images/splash.png" fullscreen: true #全屏显示 android: true ios: true android_12: image: "assets/ima

2024-09-14 14:49:03 571

原创 Flutter NestedScrollView+TabBarView或Pageview 滑动时头部不固定问题

需求是当滑动到资产处时,资产栏吸顶,里面的内容可以继续往下滑动;但是滑动时,却发现这个吸顶会跟着一起动,并没有吸附住。原因:资产处是个Container,高度较短,而其他两个是ListView高度较高,body里只要把较短的容器的高度设置成页面高度,吸顶就不会跟着一起滑动了。

2024-09-12 10:48:59 332

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除