资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

flutter跟踪定位,flutter 获取定位

Flutter基础篇——常用Widget

对于初学flutter的朋友来说,要知道,flutter的UI万物皆Widget。

漳州ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

flutter所写的页面的结构可以被看成套娃,一层套一层,一层套一层,一层套一层。。。。。。

Flutter Widget采用现代响应式框架构建,这是从 React 中获得的灵感,中心思想是用widget构建你的UI。 Widget描述了他们的视图在给定其当前配置和状态时应该看起来像什么。当widget的状态发生变化时,widget会重新构建UI,Flutter会对比前后变化的不同, 以确定底层渲染树从一个状态转换到下一个状态所需的最小更改。

Text : 该 widget 可让创建一个带格式的文本。

Row 、 Column : 这些具有弹性空间的布局类Widget可让您在水平( Row )和垂直( Column )方向上创建灵活的布局。

Stack :取代线性布局 (和Android中的LinearLayout相似),Stack允许子 widget 堆叠, 你可以使用 Positioned 来定位他们相对于 Stack 的上下左右四条边的位置。

Container : Container 可让您创建矩形视觉元素。 您可以为 Container 装饰一个 BoxDecoration , 如 background、一个边框、或者一个阴影。 Container 也可以具有边距(margins)、填充(padding)和应用于其大小的约束(constraints)。另外, Container 可以使用矩阵在三维空间中对其进行变换。

具体的演示见我另外的博客

有一部分Widget都有一个 child 属性,用于容纳唯一的子Widget。

例如:Container、Center、Padding、Align等Widget。

还有一部分Widget允许存在多个子Widget,用 children 作为属性。

例如:Row、Column、Stack等Widget。

在StatefulWidget调用createState之后,框架将新的状态插入树种,然后调用状态对象的initState。子类化State可以重写initState,以完成仅需要一次执行的工作。当然在initState的实现中需要调用super.initState

当一个状态对象不再需要时,框架调用状态对象的dispose。也可以通过覆盖dispose方法来执行清理工作。

OVER~

flutter集成百度地图提示‘can not start loc in locationg!’的解决方案

出现这个提示的原因是,因为你已经在进行定位了,可能是调试模式下没有进行资源释放,或者处理定位数据出现异常导致你的后台一直进行定位。当你重新hot reset app 后,因为上一次的定位服务没有被停止,所以会提示这个错误 `can not start loc in locationg! `

# 解决方案

在进行定位前先停止定位,函数如下

```dart

  LocationFlutterPlugin _locationPlugin = new LocationFlutterPlugin();

  _locationPlugin.stopLocation();  // ---定位前先停止定位

```

解决成功????

Flutter笔记-调用原生IOS高德地图sdk

2017年底因公司业务组合部门调整,新的团队部分维护的项目用React Native技术混合开发。为适应环境变化,开启疯狂RN学习之旅,晚上回来啃资料看视频。可能由于本身对RN技术体验不感冒或者在环境之下强迫学习有点不爽。开始寻找代替方案,Fluter像一束曙光引起了我的注意,之后一直关注并利用闲余时间开始探索。2018年一直学习到使用Flutter写项目,从0.2.0开始到现在1.5版本的发布,终于开始慢慢的爬出坑位了,但是因为部分控件感觉还是不如原生控件好用,因而Flutter提供了PlatformView部件。近期因项目中严重使用依赖地图,故而做了Fluterr使用原生IOS高德地图调研。因为我本身是一名android开发人员,初学IOS并记录下来。

PlatformView是 flutter 官方提供的一个可以嵌入 Android 和 iOS 平台原生 view 的小部件。

在我们实际开发中,我们遇到一些 flutter 官方没有提供的插件可以自己创建编写插件来实现部分功能,但是原生View在 flutter 中会遮挡住flutter 中的小部件,比如你想使用高德地图sdk、视频播放器、直播等原生控件,就无法很好的与 flutter 项目结合。

1、info.plist文件设置

2、 ios 端实现原生组件PlatformView提供原生view

3 、ios 端创建PlatformViewFactory用于生成PlatformView

4、 ios 端创建FlutterPlugin用于注册原生组件

5 、flutter 平台嵌入 原生view

iOS端的UiKitView目前还只是preview状态, 默认是不支持的, 需要手动打开开关, 在info.plist文件中新增一行io.flutter.embedded_views_preview为true.

创建类 FlutterMapView 并实现FlutterPlatformView 协议

FlutterMapView.h

FlutterMapView.m

FlutterMapFactory.h

FlutterMapFactory.m

FlutterMapPlugin.h

FlutterMapPlugin.m

请前往 高德开放平台控制台 申请 iOS Key。

注意:Bundle Identifier需要与申请的时候填写的一致

地图依赖的库列举如下:

基础 SDK AMapFoundationKit.framework

第一步:将解压后的MAMapKit.framework 文件 copy 或 拖拽 到工程文件夹中,左侧目录选中工程名,在 TARGETS-Build Phases- Link Binary With Libaries 中点击“+”按钮,在弹出的窗口中点击“Add Other”按钮,选择工程目录下的 MAMapKit.framework 文件添加到工程中。

千万不要忘记将AMapFoundationKit也一起加入工程。

3D地图正确配置应如下图所示:

需要引入的资源文件包括:AMap.bundle,其中:AMap.bundle 在 MAMapKit.framework 包中,AMap.bundle资源文件中存储了定位、默认大头针标注视图等图片,可利用这些资源图片进行开发。

左侧目录中选中工程名,在右键菜单中选择Add Files to “工程名”…,从MAMapKit.framework中选择AMap.bundle文件,并勾选“Copy items if needed”复选框,单击“Add”按钮,将资源文件添加到工程中。

成功跑起来 。。 。

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跟踪定位,flutter 获取定位
网页地址:http://cdkjz.cn/article/dsgccog.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220