在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HarmonyOS實(shí)戰(zhàn):實(shí)現(xiàn)任意拖動(dòng)的應(yīng)用懸浮窗口

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

掃碼添加小助手

加入工程師交流群

前言

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

實(shí)現(xiàn)效果

需求分析

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

  1. 窗口可以懸浮在任意頁面。
  2. 窗口可以跟隨手勢(shì)拖動(dòng)。
  3. 邊界處理。

技術(shù)實(shí)現(xiàn)

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

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

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

      })

      window.resize(this.size, this.size)//設(shè)置window大小
      window.moveWindowTo(this.locationX, this.locationY) //設(shè)置window的初始位置
  1. 手勢(shì)移動(dòng),通過調(diào)研 PanGesture()的 onActionUpdate 方法不斷更新 window 的位置。
.gesture(GestureGroup(
      GestureMode.Exclusive,
      PanGesture().onActionUpdate((event)= >{
        this.currentWindow?.moveWindowTo(event.offsetX,event.offsetY)
      })
    ))
  1. 邊界處理,計(jì)算最小移動(dòng)范圍和最大移動(dòng)范圍。確保 window 不會(huì)移出當(dāng)前頁面。
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 銷毀。當(dāng)退出應(yīng)用時(shí),需要將 window 關(guān)閉,調(diào)用 window 的 destroyWindow 方法銷毀 window。
this.contentWindow.destroyWindow(() = > {
        this.contentWindow = undefined
      })

總結(jié)

通過 window 不僅能實(shí)現(xiàn)全局懸浮窗,還可以實(shí)現(xiàn)自定義彈窗,Poupwindow,toast 等一系列彈窗。使用 window 的好處在于可以徹底和當(dāng)前頁面分離,不依賴頁面存在。可以實(shí)現(xiàn)在任意地方彈窗。快動(dòng)手試試吧!

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

    關(guān)注

    0

    文章

    83

    瀏覽量

    37546
  • 鴻蒙
    +關(guān)注

    關(guān)注

    59

    文章

    2566

    瀏覽量

    43878
  • HarmonyOS
    +關(guān)注

    關(guān)注

    80

    文章

    2130

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

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

    最近在日常開發(fā)過程中,需要實(shí)現(xiàn)城市選擇功能,同時(shí)支持模糊搜索。看似簡(jiǎn)單的功能動(dòng)手實(shí)現(xiàn)起來卻有很多難點(diǎn)。本篇文章詳細(xì)記錄開發(fā)過程中遇到的問題和對(duì)應(yīng)的解決方法,希望能夠幫助你,建議點(diǎn)贊收藏!
    的頭像 發(fā)表于 06-24 17:07 ?69次閱讀

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

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

    HarmonyOS實(shí)戰(zhàn):快速實(shí)現(xiàn)一個(gè)上下滾動(dòng)的廣告控件

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

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

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

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

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

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

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

    如何用泰克AFG31000信號(hào)發(fā)生器生成高精度任意波形

    泰克AFG31000任意波形函數(shù)發(fā)生器憑借其卓越的性能和靈活的操作界面,成為高精度信號(hào)生成領(lǐng)域的標(biāo)桿產(chǎn)品。本文將從基礎(chǔ)操作、核心算法、參數(shù)優(yōu)化到實(shí)戰(zhàn)應(yīng)用,系統(tǒng)講解如何利用該儀器生成滿足嚴(yán)苛測(cè)試需求
    的頭像 發(fā)表于 04-22 16:13 ?295次閱讀
    如何用泰克AFG31000信號(hào)發(fā)生器生成高精度<b class='flag-5'>任意</b>波形

    電機(jī)及電力拖動(dòng)基礎(chǔ)

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

    名單公布!【書籍評(píng)測(cè)活動(dòng)NO.56】極速探索HarmonyOS NEXT:純血鴻蒙應(yīng)用開發(fā)實(shí)踐

    本書深入剖析了HarmonyOS NEXT的各項(xiàng)技術(shù),通過豐富的實(shí)戰(zhàn)案例,由淺入深地解析了HarmonyOS NEXT的原理與應(yīng)用。借助多樣化的實(shí)戰(zhàn)案例和豐富的配套資源,讀者可以全面
    發(fā)表于 01-20 16:53

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

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

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

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

    使用TLV320AIC3254EVM-K開發(fā)板采集環(huán)境音并輸出到耳機(jī)接口和喇叭上,拖動(dòng)任意曲線上的點(diǎn)左聲道就沒有聲音怎么解決?

    如題,使用TLV320AIC3254EVM-K開發(fā)板采集環(huán)境音并輸出到耳機(jī)接口和喇叭上,現(xiàn)在遇到問題: 使用Adaptive Filering自適應(yīng)濾波功能: 只要拖動(dòng)任意曲線上的點(diǎn),左聲道就會(huì)立刻沒有聲音,只剩右聲道的聲音。輸入輸出配置如下:
    發(fā)表于 10-18 06:11

    控制臺(tái)窗口主機(jī)是什么

    控制臺(tái)窗口主機(jī)(conhost),通常指的是在Windows操作系統(tǒng)中用于承載和控制控制臺(tái)窗口(即命令行界面或CMD窗口)的進(jìn)程。以下是對(duì)控制臺(tái)窗口主機(jī)的介紹: 一、定義與功能 定義
    的頭像 發(fā)表于 10-08 18:12 ?5379次閱讀

    中值濾波窗口大小對(duì)結(jié)果影響有哪些

    中值濾波是一種常用的數(shù)字濾波技術(shù),它通過將信號(hào)中的每個(gè)點(diǎn)用其鄰域內(nèi)的中值替換來實(shí)現(xiàn)信號(hào)的平滑和去噪。中值濾波窗口的大小對(duì)濾波結(jié)果有很大的影響,以下是對(duì)中值濾波窗口大小對(duì)結(jié)果影響的分析。 窗口
    的頭像 發(fā)表于 07-29 09:10 ?2014次閱讀
    主站蜘蛛池模板: 久久精品国产精品亚洲人人 | 免费看国产一级片 | 久久国产精品系列 | 激情五月婷婷基地 | 欧美色视频日本片免费高清 | 欧美综合成人网 | 国产麻豆成人传媒免费观看 | 精品国产免费观看一区高清 | 精品国产免费久久久久久婷婷 | 毛片区| 国产在线精品香蕉综合网一区 | 888米奇在线视频四色 | 午夜香蕉网 | 你懂的网站在线观看 | 日本黄视频网站 | 两性色午夜视频自由成熟的性 | 亚洲国产欧美视频 | 欧美色惰aⅴ | 我要看一级大片 | 男人的网址 | 九九热精品在线观看 | tom影院亚洲国产日本一区 | 国产精品毛片一区二区三区 | 久久这里精品青草免费 | 婷婷激情视频 | 国产黄色片在线观看 | 婷婷丁香激情 | 亚洲人成网站在线观看妞妞网 | 男女免费网站 | 色婷婷中文字幕 | 国产伦精一区二区三区 | 日本免费黄色录像 | 99香蕉国产 | 亚洲好骚综合 | 久久国内精品 | 日本不卡专区 | 三级理论在线 | 五月六月伊人狠狠丁香网 | 亚洲色图21p | 国产美女视频免费 | 黄色录像大全 |