亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

HarmonyOS實戰(zhàn):實現(xiàn)任意拖動的應用懸浮窗口

尤楓 ? 來源:jf_54996641 ? 2025-06-24 17:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

為了增加應用程序功能的豐富性和便利性,很多應用都會提供一個懸浮窗口實現(xiàn)多頁面顯示。特別是一些性能檢測工具,比如 dokit 。在鴻蒙上怎么實現(xiàn)類似的全局懸浮窗口呢?閱讀完本篇文章你將學會在鴻蒙上如何實現(xiàn)這一功能。

實現(xiàn)效果

需求分析

要想實現(xiàn)全局懸浮窗口,必須滿足以下幾個要求:

  1. 窗口可以懸浮在任意頁面。
  2. 窗口可以跟隨手勢拖動。
  3. 邊界處理。

技術實現(xiàn)

在 ArkUI 中,頁面只有 Window 和 View 兩種組成。View 通常都是顯示在 Window 中,如果要想實現(xiàn)一個可以在任意頁面都能停留顯示的懸浮窗,只能通過 window 來實現(xiàn)。

  1. 通過 windowState 調用 createSubWIndow 來創(chuàng)建一個子 Window。
this.windowState.createSubWindow("subWindow", (err: BusinessError, window) = > {
     

    })
  1. 對于 windowState 的獲取,一般都在 EntryAbility 中的 onWindowStateCreate 中提供,如果不想通過傳遞參數(shù)的方式獲取 windowStage,系統(tǒng)也提供了工具類可以在任意地方獲取。
//存儲windowStage
WindowManager.setWindowStage(windowStage);
//獲取windowstage
 this.windowState = WindowManager.getWindowStage()
  1. 初始化 Window。url 為 window 頁面的路徑。
window.setWindowLayoutFullScreen(false) //設置window是否全屏顯示
      window.setUIContent(url, (error) = > {
        window.showWindow((error) = > {
          window.setWindowBackgroundColor("#00000000") //設置window背景色
        })

      })

      window.resize(this.size, this.size)//設置window大小
      window.moveWindowTo(this.locationX, this.locationY) //設置window的初始位置
  1. 手勢移動,通過調研 PanGesture()的 onActionUpdate 方法不斷更新 window 的位置。
.gesture(GestureGroup(
      GestureMode.Exclusive,
      PanGesture().onActionUpdate((event)= >{
        this.currentWindow?.moveWindowTo(event.offsetX,event.offsetY)
      })
    ))
  1. 邊界處理,計算最小移動范圍和最大移動范圍。確保 window 不會移出當前頁面。
this.locationX = Math.min(Math.max(this.locationX + x, this.minX), this.maxX)
 this.locationY = Math.min(Math.max(this.locationY + y, this.minY), this.maxY)
  1. window 銷毀。當退出應用時,需要將 window 關閉,調用 window 的 destroyWindow 方法銷毀 window。
this.contentWindow.destroyWindow(() = > {
        this.contentWindow = undefined
      })

總結

通過 window 不僅能實現(xiàn)全局懸浮窗,還可以實現(xiàn)自定義彈窗,Poupwindow,toast 等一系列彈窗。使用 window 的好處在于可以徹底和當前頁面分離,不依賴頁面存在??梢詫崿F(xiàn)在任意地方彈窗??靹邮衷囋嚢?!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Window
    +關注

    關注

    0

    文章

    84

    瀏覽量

    37944
  • 鴻蒙
    +關注

    關注

    60

    文章

    2766

    瀏覽量

    45179
  • HarmonyOS
    +關注

    關注

    80

    文章

    2144

    瀏覽量

    35319
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【Labview技巧合集】10 實現(xiàn)窗口懸浮和???/a>

    【Labview技巧合集】10 實現(xiàn)窗口懸浮和停靠
    發(fā)表于 08-27 17:39

    霍爾元件在磁懸浮技術上的應用與解析

    。例如在磁懸浮擺件中,兩個線性霍爾元件以垂直交叉布局實現(xiàn)三維空間定位。 .?閉環(huán)調節(jié)系統(tǒng)? 霍爾信號經(jīng)PID算法處理后驅動電磁鐵電流調整,實現(xiàn)懸浮體的動態(tài)平衡。調試參數(shù)時需重點調節(jié)比例
    發(fā)表于 08-07 10:40

    【RA-Eco-RA6M4開發(fā)板評測】實現(xiàn)任意存儲地址內容的打印與修改

    代碼 一. 前言 前面我們實現(xiàn)了shell命令行,現(xiàn)在就可以方便的添加 自定義命令了。 為了方便調試我們來實現(xiàn)任意存儲地址的內容打印與修改的功能。這樣可以實現(xiàn)任意外設寄存器的查看與配置,片內存
    發(fā)表于 07-19 23:20

    無軸承永磁電機懸浮波動抑制策略

    。將等效擾動電流補償?shù)娇h浮控制算法中以抑制懸浮波動。與僅采用PID控制算法相比較,仿真結果表明所提控制策略能夠抑制懸浮波動,實現(xiàn)電機穩(wěn)定懸浮。 純分享帖,點擊下方附件免費獲取完整資
    發(fā)表于 07-14 17:51

    HarmonyOS next】ArkUI-X休閑益智兒童拼圖【進階】

    版本:ArkUI API 16 ? 代碼倉庫地址:gitee 三、核心實現(xiàn)解析 3.1 拖動邏輯的三維坐標系 在拼圖游戲中,精準的位置計算是靈魂所在。我們通過PanGesture手勢監(jiān)聽實現(xiàn)
    發(fā)表于 06-28 21:41

    HarmonyOS實戰(zhàn):Tab頂部滑動懸停功能實現(xiàn)

    日常開發(fā)過程中,遇到這種 Scroll 嵌套 List 列表滑動頂部懸停的場景十分常見,在鴻蒙開發(fā)時也正好實現(xiàn)了這個功能,本篇文章將帶你一步步實現(xiàn) Tab 頂部懸停的效果,建議點贊收藏!
    的頭像 發(fā)表于 06-24 17:07 ?240次閱讀

    HarmonyOS實戰(zhàn): 城市選擇功能的快速實現(xiàn)

    最近在日常開發(fā)過程中,需要實現(xiàn)城市選擇功能,同時支持模糊搜索??此坪唵蔚墓δ軇邮?b class='flag-5'>實現(xiàn)起來卻有很多難點。本篇文章詳細記錄開發(fā)過程中遇到的問題和對應的解決方法,希望能夠幫助你,建議點贊收藏!
    的頭像 發(fā)表于 06-24 17:07 ?252次閱讀

    HarmonyOS實戰(zhàn):3秒實現(xiàn)一個自定義輪播圖

    那么簡單,需要考慮的細節(jié)很多。不過在 HarmonyOS實現(xiàn)一個輪播圖卻是十分的簡單,本篇文章教你在最短的時間內快速實現(xiàn)一個自定義的 輪播圖,建議點贊收藏!
    的頭像 發(fā)表于 06-24 17:06 ?332次閱讀

    HarmonyOS實戰(zhàn):快速實現(xiàn)一個上下滾動的廣告控件

    上要想實現(xiàn)這樣的功能并不容易,那么在鴻蒙上怎么實現(xiàn)這樣的功能呢?本篇文章教你使用最簡單的方式實現(xiàn)一個支持上下滾動的廣告控件,建議點贊收藏!
    的頭像 發(fā)表于 06-24 17:05 ?307次閱讀

    HarmonyOS 5】桌面快捷方式功能實現(xiàn)詳解

    HarmonyOS 5】桌面快捷方式功能實現(xiàn)詳解 ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應用服務##鴻蒙金融類應用 (金融理財# 一、前言 在移動應用開發(fā)中,如何讓用戶快速觸達核心
    的頭像 發(fā)表于 06-21 16:42 ?1557次閱讀
    【<b class='flag-5'>HarmonyOS</b> 5】桌面快捷方式功能<b class='flag-5'>實現(xiàn)</b>詳解

    HarmonyOS實戰(zhàn):組件化項目搭建

    ?本文將詳細講解HarmonyOs組件化項目搭建的全過程,帶領大家實現(xiàn)一個組件化項目。 項目創(chuàng)建 首先創(chuàng)建一個項目工程,點擊開發(fā)工具DevEco-Stdio的****File 選項,選擇 New 然后點擊 Create Project 。 選擇創(chuàng)建一個EmptyAbili
    的頭像 發(fā)表于 06-09 14:58 ?432次閱讀
    <b class='flag-5'>HarmonyOS</b><b class='flag-5'>實戰(zhàn)</b>:組件化項目搭建

    【RA-Eco-RA4M2開發(fā)板評測】使用RA4M2的串口實現(xiàn)任意任意類型任意長度的數(shù)據(jù)接收,并將接收到的數(shù)據(jù)顯示在串口助手上

    使用RA4M2的串口實現(xiàn)任意任意類型任意長度的數(shù)據(jù)接收,并將接收到的任意類型任意長度的數(shù)據(jù)顯示在串口助手上 使用RA4M2的串口
    發(fā)表于 05-04 14:11

    電機及電力拖動基礎

    “電機及電力拖動基礎”是工業(yè)電氣自動化專業(yè)的重要專業(yè)基礎課之一,在整個專業(yè)教學計劃中起承上啟下的作用,它是“數(shù)學”、“物理學”和“電路與磁路”的后續(xù)課程,又是“控制理論”、“電力拖動自動控制系統(tǒng)
    發(fā)表于 04-08 16:11

    安泰:高壓放大器在金屬材料的靜電懸浮過程中的應用

    實驗名稱:靜電懸浮過程的優(yōu)化設計與動態(tài)控制 實驗目的: 通過多種技術手段,對現(xiàn)有靜電懸浮系統(tǒng)進行了多方面的優(yōu)化。從懸浮電極的形貌和尺寸以及定位光路考慮,實現(xiàn)了直徑10mm固態(tài)金屬材料的
    的頭像 發(fā)表于 12-05 13:30 ?701次閱讀
    安泰:高壓放大器在金屬材料的靜電<b class='flag-5'>懸浮</b>過程中的應用

    高壓放大器在位置控制系統(tǒng)懸浮實驗中的應用

    上,設計實現(xiàn)靜電懸浮位置控制系統(tǒng),并實現(xiàn)了對懸浮樣品的穩(wěn)定位置控制。 測試設備:高壓放大器、懸浮電極、激光電源等。 圖1:靜電
    的頭像 發(fā)表于 11-27 11:27 ?761次閱讀
    高壓放大器在位置控制系統(tǒng)<b class='flag-5'>懸浮</b>實驗中的應用