HarmonyOS 子窗口是否可手势移动

HarmonyOS
11h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

参考demo:

import window from '@ohos.window';

interface Position {
  x: number,
  y: number
}
@Entry
@Component
struct FloatContent {
  @State message: string = 'float window'
  private panOption: PanGestureOptions = new PanGestureOptions({ direction: PanDirection.All });
  // 创建位置变量,并使用@Watch监听,变量发生变化调用moveWindow方法移动窗口
  @State @Watch("moveWindow") windowPosition: Position = { x: 0, y: 0 };
  floatWindow: window.Window
  // 通过悬浮窗名称“floatWindow”获取到创建的悬浮窗
  aboutToAppear() {
    this.floatWindow = window.findWindow("floatWindow")
  }
  // 将悬浮窗移动到指定位置
  moveWindow() {
    this.floatWindow.moveWindowTo(this.windowPosition.x, this.windowPosition.y);
  }

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
    .gesture(
      // 绑定PanGesture事件,监听拖拽动作
      PanGesture(this.panOption)
        .onActionStart((event: GestureEvent) => {
          console.info('Pan start');
        })
        .onActionUpdate((event: GestureEvent) => {
          // 发生拖拽时,获取到触摸点的位置,并将位置信息传递给windowPosition
          this.windowPosition.x += event.offsetX;
          this.windowPosition.y += event.offsetY;
        })
        .onActionEnd(() => {
          console.info('Pan end');
        })
    )
    .border({
      style: BorderStyle.Dotted
    })
    .backgroundColor(Color.Yellow)
  }
}
分享
微博
QQ
微信
回复
8h前
相关问题
如何生成一个可以交互的移动窗口
916浏览 • 1回复 待解决
HarmonyOS 移动GridItem的Grid组件
270浏览 • 1回复 待解决
HarmonyOS LongPressGesture手势移动问题
471浏览 • 1回复 待解决
窗口加载的页面是否可以带参数
420浏览 • 1回复 待解决
HarmonyOS 窗口路由切换问题
130浏览 • 1回复 待解决
HarmonyOS window.findWindow获取窗口错误
416浏览 • 1回复 待解决
HarmonyOS 窗口跳转页面的返回问题
254浏览 • 1回复 待解决
如何通过代码关闭窗口
411浏览 • 1回复 待解决
求告知窗口如何添加动画
418浏览 • 1回复 待解决
如何设置窗口的背景颜色?
375浏览 • 1回复 待解决
设置窗口透明度未生效
1714浏览 • 1回复 待解决
HarmonyOS api10如何给窗口设置圆角
396浏览 • 1回复 待解决
list组件是否支持内部移动
314浏览 • 1回复 待解决
应用窗口的开发流程是什么
1922浏览 • 1回复 待解决