HarmonyOS 组件通过onTouch改变position中Y的值,再次点击空间会跳回原位
想做一个可以拖拽的空间,通过ontouch事件修改控件的position的Y值 但是手指松开再次点击到控件组件就会跳回原位,如何防止跳回原位?demo:
@State touchY: number = 0
@State questionViewX:number = 100
@State questionViewY:number = 100
Stack(){
Column(){
Image($r('app.media.close_circle_8a8a8a')).width('20vp').height('20vp').objectFit(ImageFit.Cover)
Image($r('app.media.UnionLogo')).width('60vp').height('60vp')
}
.position({x:this.questionViewX,y:this.questionViewY})
.onTouch((event: TouchEvent) => {
if(event){
if (event.type === TouchType.Down) {
this.touchY = event.changedTouches[0].y
}
if (event.type === TouchType.Move) {
let dy = event.changedTouches[0].y - this.touchY
this.questionViewY = 100+dy
}
if (event.type === TouchType.Up) {
// this.touchY = 0
}
}
})
.focusOnTouch(true)
.alignItems(HorizontalAlign.End)
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 组件配置offset属性后,组件的onAreaChange中的值,position不正确
324浏览 • 1回复 待解决
HarmonyOS如何获取inputText的X,Y的值
390浏览 • 1回复 待解决
Tablist 点击超出部分的tab触发点击事件 但是整个列表会自动跳回到最前面 请问怎么解决?
5153浏览 • 1回复 待解决
HarmonyOS toggle点击后,状态变化的回调会跟随开关值变化
544浏览 • 1回复 待解决
HarmonyOS 自定义Dialog中,进行系统返回操作时,会先关闭Dialog,再次点击才会退出当前页面
205浏览 • 1回复 待解决
askTs的progress组件的值改变时如何设置过度动画?
2156浏览 • 1回复 待解决
父组中变量值改变,如何让子组件中的值跟着一起变化?
390浏览 • 2回复 待解决
点击拒接按钮后无法再次来电
1962浏览 • 1回复 待解决
eTS position定位点击事件穿透,怎么阻止?
4038浏览 • 1回复 待解决
Web组件改变@State注释的url值不会加载新页面。
629浏览 • 1回复 待解决
HarmonyOS ArkUI框架内,可以不改变组件大小的情况下,扩大组件的点击响应范围
177浏览 • 1回复 待解决
Hyperlink的onTouch预览报错
1821浏览 • 1回复 待解决
HarmonyOS使用属性动画改变List组件内item的高度,其内容高度会突变
320浏览 • 1回复 待解决
当父组件绑定了onTouch,子组件绑定了onClick,点击子组件如何阻止冒泡传递
462浏览 • 1回复 待解决
是否可以通过代码触发组件的点击事件
1723浏览 • 1回复 待解决
HarmonyOS DeviceBasicInfo里的deviceId是否会随着设备卸载改变
270浏览 • 1回复 待解决
HarmonyOS 如何实现Y轴旋转?
182浏览 • 1回复 待解决
在XComponent组件中如何改变背景颜色
352浏览 • 1回复 待解决
在ontouch的时候改变了state定义的pageIndex和textPage,组件里@Link定义的数据变了,但是没有重绘
1543浏览 • 1回复 待解决
通过PolarDB的空间分析功能可以实现哪些效果?
2409浏览 • 1回复 待解决
父组件onTouch,子组件onClick如何做到只响应onClick,不响应onTouch
384浏览 • 1回复 待解决
权限申请的弹窗点击禁止之后,再次申请权限时无法弹出
600浏览 • 1回复 待解决
【Position属性】想要利用position属性把组件固定在页面的右下角
792浏览 • 1回复 待解决
HarmonyOS 什么情况下会导致指纹注册凭据改变
285浏览 • 1回复 待解决
如何让一个按钮点击执行耗时操作,执行完之后才能再次点击
672浏览 • 1回复 待解决
demo中用100+dy是初始高度加位移高度,所以会回到初始高度附近,建议换成 this.questionViewY = this.questionViewY+dy。
下面这个demo可以解决移动的问题,点击也不会返回原位: