logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Flutter 实现一个容器内部元素可平移、缩放和旋转等功能(十)

首先我们来简单的限制移动的边界,通过上面我们知道,移动的点都是通过左上角的坐标定位的,在元素旋转后,判断边界就应该以最接近边界的顶点去计算,我们首先获取四个顶点的坐标,再通过通过顶点坐标的最值判断边界。之前在未旋转的时候,我么通过左上和右下值来判断的吸附,现在我们旋转了元素,再用之前那个吸附方法,判断的永远也只是初始的蓝色矩形,这样很不和逻辑,当旋转后,理应是旋转后的某个顶点在吸附阈值内就进行吸附

文章图片
#flutter#android#前端
Flutter 实现一个容器内部元素可平移、缩放和旋转等功能(八)

有许多方式实现扩展功能区域,第一种就是划分区域,划分下面为属性扩展区域,元素变换区域则会相应的压缩,所以涉及到变换的计算有使用到容器宽高属性的都要变化;按照部分经验,这种功能操作的大多数是图片+文本,所以我们以这两种来划分元素的类型为例,后续如果有新的类型再增加即可。这样我们就简单实现了属性的修改,样式什么的后面有时间再慢慢调整,现在只是功能为主,毕竟真实的开发总会有UI的。前面我们实现了元素的变

文章图片
#flutter#前端
Flutter 实现一个容器内部元素可平移、缩放和旋转等功能(六)

我们使用的顶点坐标顺序是顺时针,第一次循环 i = 0,j = 3,那么i就是左上顶点,j就是左下顶点,两个顶点刚好构成矩形左边;这样就简单实现了元素的删除功能。前面有人提到在元素内部的那块判断怎么那么写的,看来对知识渴望的小伙伴还是有,这样挺好的。这样就得到了代码中的判断依据,至于循环遍历顶点的写法,就是为了获取相邻两个顶点,这个就可以带入square坐标和循环去算一下就行了,保证每次循环都是相

文章图片
#flutter
基于CupertinoPicker封装日期选择器

实现这个需求,可以找一下三方插件,应该有很多插件实现了这个功能,不过我们项目使用到的比较简单,就自行实现了一个,这里做一下简单的记录。因为实现类似于ios风格的可滑动选择的小部件,所以通过查阅官方文档,找到了小部件 =>

文章图片
#flutter#前端#android
Flutter 实现一个容器内部元素可平移、缩放和旋转等功能(三)

然后我们继续考虑热区的问题,当旋转一定角度的时候,再次点击对应的热区,就无法响应事件了,因为旋转后热区坐标已经发生改变,所以我们得对点击判断中加入角度的影响。值得注意的是,现在我们研究的是单个元素,所以坐标系就是以元素自身形成的(响应的事件也是在这个元素上),等后期要实现多个,坐标系就得以外层容器作为参考了。要实现旋转,我们就得知道元素的旋转角度,主要得出旋转的角度,那么实现起来就比较简单,所以简

#flutter
flutter自定义table_calendar

如果我要对头部新增一些按钮图标,或者控制某些样式,这样我们就需要使用和属性来自定义头部// 用于自定义切换上一月和下一月@override),// 监听日历组件创建,设置_pageController},// 可选时间区间的开始时间// 可选时间区间的结束时间// 当前获取焦点的时间// 所以自定义头部Builder,我们就可以自定义头部小部件了Stack(left: 20,top: 3,// 处

文章图片
#flutter
flutter实现背景容器与滚动容器的联动滚动

当滑动可滚动的前景容器时,需要判断背景容器是否滑动到底部,如果背景没有滚动到底部,需先滚动背景容器,如果背景已经滚动到底部,则滚动前景容器,这样来实现联动滚动效果。起初分析用双层滚动容器实现,外层滚动容器放背景,内层滚动容器放列表,通过动态控制内层容器的可滚动属性来实现效果。其实进一步分析不难发现,当内层容器覆盖在背景上时,当内层容器滚动,背景跟着一起滚动就行了,所以可以监听滚动容器的滚动,当背景

文章图片
#flutter#前端
vue2 + tracking 实现 PC 端的人脸识别

首先确保有摄像头有时候本地调试无法打开摄像头,可以在浏览器上输入chrome然后会出现如下页面,再操作即可。

文章图片
#javascript#前端#vue.js
Flutter 实现一个容器内部元素可平移、缩放和旋转等功能(一)

为了解决这个问题,我们可以使用下面这种方法,将手指按下,移动,抬起看做一个操作动作,用变量记录当前的初始的x和y,手指按下记录按下的坐标,手指移动时记录移动到的坐标,通过按下的坐标与移动的坐标计算移动的距离,那么就有:当前的值 = 初始化值 + (手指当前移动的值 - 手指按下的值);这样就达到了我们的要求。现在我们对边界做出了限制,但新的问题又出现了,我们手指拖动到容器外面,依然在响应事件,此时

文章图片
#flutter#android
flutter 封装一个 tab

上面我们就完成了一个简单的tab封装,但是目前还不算很通用,例如我想要TabBar在下面,TabView在上面,这个就不能直接使用了,得更改内部代码,所以继续继续封装,允许用户自定义方向。一种是使用PageView,这个天生就支持上下滑动,但是如果使用这个,得维护PageController,同步TabBar的切换,有兴趣的可自行试一下。另一种方式依然是旋转,我们将其旋转90度后,自然而然滑动手势

文章图片
#flutter#前端
    共 12 条
  • 1
  • 2
  • 请选择