
正文
flutter引入svg flutter引入本地音频
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
【Flutter】引入包import的各种含义,及常用命名规则
import 'dart:xxx'; 引入Dart标准库
import 'xxx/xxx.dart'; 引入相对路径的Dart文件
import 'package:xxx/xxx.dart'; 引入Pub仓库pub.dev(或者pub.flutter-io.cn)中的第三方库
import 'package:project/xxx/xxx.dart'; 引入自定义的dart文件
import 'xxx' show compute1,compute2 只导入compute1,compute2
import 'xxx' hide compute3 除了compute都引入
import 'xxx' as compute4 将库重命名,当有名字冲突时
library compute5; 定义库名称
part of compute6; 表示文件属于某个库
文件导入顺序(从上到下依次)
dart sdk 内的库
flutter内的库
第三方库
自己的库(文件)
相对路径引用
命名规范:
文件夹:小写 下划线 lowercase_with_underscores
文件:小写 下划线 lowercase_with_underscores
类名:大写开头的驼峰命名法 UpperCamelCase
变量名:小写开头的驼峰命名法 lowerCamelCase
常量:小写开头的驼峰命名法 lowerCamelCase
首字母缩写词长度不超过两个字母的,首字母大写,比如 HttpRequest
长度两个字母的首字母缩写词可完全大写,比如 IOStream , DBUtils
但单个单词缩写仍然仅首字母大写,比如 Id
相关问答
Q1: Flutter自定义绘制组件
Flutter中自定义组件一般有两种方式:
CustomPaint继承自SingleChildRenderObjectWidget,即它可以在通过嵌套引入到widget树中,并且可以有一个child子widget。它的构造方法如下:
painter和foregroundPainter需要接收CustomPainter对象,是CustomPaint核心。CustomPainter是进行UI绘制的核心类,绘制时, CustomPaint 首先在画布上调用 painter绘制 , 然后再绘制它的 child Widget, child 绘制完成后再调用 foregroundPainter 进行绘制。
size属性标识绘制区域大小,但当CustomPaint有child,该属性将会忽略,而使用child的大小为绘制区域大小。
isComplex和willChange用于控制绘制层缓存处理的,这里暂不讨论。
可实现CustomPainter子类进行UI绘制
实现paint方法进行真正的绘制,canvas是画布对象,size是绘制区域,是从CustomPaint中size属性传递得到的。绘制过程与Android原生开发十分类似,连API都十分相像,这点对熟悉Android原生开发者真是太友好了。
Paint对象是画笔对象,就是绘图工具,我们可以设置画笔的颜色、粗细、是否抗锯齿、笔触形状以及作画风格等,通过这些属性我们可以很方便的来定制自己的UI效果,在绘制的过程中可以定义多个画笔,以便实现多种风格图形的集合。
根据需求选择合适的画笔属性,完成你的绘制。
Canvas是绘制的画布,它包含了很多绘制方法,可以绘制出各种形状的图形。需要注意的是,画布是应用所有控件都在使用的, 所以通过这个画布其实是可以绘制充满屏幕的内容的,每次绘制都应该限制在本控件的区域(Size)内, 以免绘制覆盖到其他组件。
下面介绍下Canvas的绘制方法:
PointMode是个枚举
p1、p2为线段两个端点
Rect定义矩形的大小位置,有多种构造方式:
RRect描述圆角矩形,他通过Rect和Radius来构造
画圆比较简单,c表示圆心位置,radius是半径。
椭圆使用外接矩形确定大小位置,rect就是外接矩形。
绘制弧形,先确定弧形对应的椭圆,同样地用外接矩形rect确定椭圆,然后根据起始点和结束点角度来确定那一段弧度,startAngle,sweepAngle分别代表起始和结束点角度,角度用弧度表示法。
useCenter表示是否连接闭合形状,userCenter = false表示不闭合,即画一段弧线,userCenter = true表示闭合,即绘制一个扇形。
绘制路径,关键在于构建路径Path,可以直接new Path对象,然后通过path方法可以连接出图形,path关键方法如下:
还有其他方法,有兴趣可以查看API。
Q2: Flutter 插件问题(引入插件同时存在静态库与swift)
前提:Flutter 项目中引入使用多个插件,内含有swift与静态库时出现的一系列问题
问题一、swift插件缺少设置swift的版本号
解决方案:在Xcode中打开项目Targets—builds settings —user-defined
在user-defined内添加一行:SWIFT_VERSION(版本号视当前版本号为准)
问题二、静态库
看到网上好多的解决方法是删除掉或者添加上Podfile中的use_frameworks!,实测与此无关,错误信息忘记截图啦😭,大体就是pod install 时出现无法install之类的信息
正解方法是找到相关错误插件内的podspec文件,添加s.static_framework = true
Q3: Flutter项目插件整理
#弹窗
oktoast : ^3.1.5
#路由
get : ^4.5.1
#百度地图定位
flutter_bmflocation : ^2.0.0-nullsafety.1
#百度地图-基础地图
flutter_baidu_mapapi_map : ^3.0.0+2
#百度地图-检索
flutter_baidu_mapapi_search : ^3.0.0
#百度地图-计算工具
flutter_baidu_mapapi_utils : ^3.0.0
#屏幕自动适应
flutter_screenutil : ^5.2.0
#Banner图切换
flutter_swiper_plus : ^2.0.4
#网络请求
dio : ^4.0.4
dio_cache_interceptor : ^3.2.2
pretty_dio_logger : ^1.2.0-beta-1
#城市选择器
azlistview : ^2.0.0
#本地存储
get_storage : ^2.0.3
#权限
permission_handler : ^8.3.0
#保存图片
image_gallery_saver : ^1.7.1
# image_save: ^5.0.0
#常用工具类
common_utils :
path : plugin/common_utils-2.0.2
#选择器
flutter_picker : ^2.0.2
#生成二维码
qr_flutter : ^4.0.0
#验证码输入框
pin_input_text_field : ^4.1.1
# 汉字转拼音
lpinyin : ^2.0.3
#多张图片上传
wechat_assets_picker : ^6.3.1
wechat_camera_picker : ^2.6.3
#裁剪图片
image_cropper : ^1.5.0
#图片压缩
flutter_luban : ^0.1.13
#家谱树
graphview : ^1.1.1
vector_math : ^2.1.0
#行为验证码
steel_crypt : ^3.0.0+1
encrypt : ^5.0.0
#二维码识别
flutter_qr_reader : ^1.0.5
#右上角小图标
badges : ^2.0.2
#唤醒系统应用
url_launcher : ^6.0.17
flutter_sms : ^2.3.2
#QQ分享
tencent_kit : ^2.1.0
flutter_cache_manager : ^3.3.0
#微信SDK
fluwx : ^3.6.1+4
#支付宝SDK
tobias :
path : plugin/tobias-2.2.0
#个推
getuiflut : ^0.2.11
#极光推送
# jpush_flutter:
# path: plugin/jpush_flutter-2.2.2
#极光魔链
jmlink_flutter_plugin :
path : plugin/jmlink_flutter_plugin-2.1.2
#极光认证
jverify :
path : plugin/jverify-2.2.4
#极光统计
janalytics :
path : plugin/janalytics-2.1.5
#倒计时
circular_countdown_timer : ^0.2.0
#加载中效果
flutter_spinkit : ^5.1.0
#APP更新
r_upgrade :
path : plugin/r_upgrade-0.3.7+2
#刷新-加载更多
flutter_easyrefresh : ^2.2.1
#右上角弹出式菜单
custom_pop_up_menu : ^1.2.2
#时间轴
timeline_tile : ^2.0.0
#虚线边框
dotted_border : ^2.0.0
like_button : ^2.0.4
#图片
extended_image : ^6.0.1
#图片九宫格
nine_grid_view : ^2.0.0
#时间模糊插件
timeago :
path : plugin/timeago-3.1.0
#屏幕截图
screenshot : ^1.2.3
#图片压缩
flutter_image_compress : ^1.1.0
#List左滑右滑
flutter_slidable : ^1.2.0
#底部伸缩抽屉-针对地图
sliding_up_panel : ^2.0.0+1
#键盘高度
flutter_keyboard_size : ^1.0.0+4
#JSON动图
lottie : ^1.2.2
#城市选择器
city_pickers :
path : plugin/city_pickers-1.0.1
#调试工具
path_provider : ^2.0.7
#打开HTML
webview_flutter : ^2.3.1
#表情
emoji_picker_flutter : ^1.0.8
#扇形进度
ai_progress : ^2.0.0
#喜欢按钮
tiktok_favorite_gesture : ^1.0.0
#获取手机信息
device_info : ^2.0.3
#包信息
package_info : ^2.0.2
device_apps : ^2.1.1
#倒计时
stop_watch_timer : ^1.3.1
#发现Android和iOS上的网络(WiFi和移动/蜂窝)连接状态
connectivity_plus : ^2.2.0
#从应用程序打开iOS和Android手机设置。
app_settings : ^4.1.1
#日志上报
sentry_flutter : ^6.1.2
#后退拦截
back_button_interceptor : ^5.0.2
#视频播放器
better_player : ^0.0.81
#APP启动图
flutter_native_splash : ^2.0.4
#JSON-TO-MAPPER
dart_json_mapper : ^2.1.17
#HTML展示
flutter_html : ^3.0.0-alpha.2
#XD to Flutter
adobe_xd : ^2.0.1
flutter_svg : ^1.0.3
#APPBAR背景色渐变
new_gradient_app_bar : ^0.2.0
#音频播放
flame_audio : ^1.0.0
#入门介绍页
intro_slider : ^3.0.3
#键盘
keyboard_actions : ^3.4.5
emoji_keyboard_flutter : ^1.2.7
#单选选择框
flutter_pickers : ^2.1.9
flutter引入svg的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于flutter引入本地音频、flutter引入svg的信息别忘了在本站进行查找喔。






