第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

HarmonyOS NEXT實(shí)戰(zhàn):獲取窗口屬性

標(biāo)簽:
HarmonyOS

##HarmonyOS Next实战##HarmonyOS SDK应用服务##教育##

在Stage模型下,管理应用窗口的典型场景有:

  • 设置应用主窗口属性及目标页面
  • 设置应用子窗口属性及目标页面
  • 体验窗口沉浸式能力
  • 设置悬浮窗
  • 监听窗口不可交互与可交互事件

以下介绍获取窗口属性的方式:
第1步:获取Window类

getLastWindow(ctx: BaseContext): Promise<Window>

获取当前应用内最上层的子窗口,若无应用子窗口,则返回应用主窗口,使用Promise异步回调。

第2步:获取当前窗口的属性

getWindowProperties(): WindowProperties

获取当前窗口的属性,返回WindowProperties。

WindowProperties各属性解释

  • windowRect:窗口尺寸,可在页面生命周期onPageShow或应用生命周期onForeground阶段获取。
  • drawableRect:窗口内的可绘制区域尺寸,其中左边界上边界是相对于窗口计算。在Stage模型下,需要在调用loadContent()或setUIContent()加载页面内容后使用该接口。
  • type:窗口类型。
  • isFullScreen:是否全屏,默认为false。true表示全屏;false表示非全屏。
  • isLayoutFullScreen:窗口是否为沉浸式且处于全屏模式(不在悬浮窗、分屏等场景下),默认为false。true表示沉浸式且处于全屏模式;false表示非沉浸式或非全屏模式。
  • focusable:窗口是否可聚焦,默认为true。true表示可聚焦;false表示不可聚焦。
  • touchable:窗口是否可触摸,默认为true。true表示可触摸;false表示不可触摸。
  • brightness:屏幕亮度。该参数为浮点数,可设置的亮度范围为[0.0, 1.0],其取1.0时表示最大亮度值。如果窗口没有设置亮度值,表示亮度跟随系统,此时获取到的亮度值为-1。
  • isKeepScreenOn:屏幕是否常亮,默认为false。true表示常亮;false表示不常亮。
  • isPrivacyMode:隐私模式,默认为false。true表示模式开启;false表示模式关闭。
  • isTransparent:窗口背景是否透明。默认为false。true表示透明;false表示不透明。
  • id:窗口ID,默认值为0,该参数应为整数。
  • displayId:窗口所在屏幕ID,默认返回主屏幕ID,该参数应为整数。

以下以获取窗口属性的宽高为例,实战代码如下:

import { common } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';
import { BusinessError } from '@kit.BasicServicesKit';

@Entry
@Component
struct GetWindowPropertiesPage {
  @State windowWidth: number = 0
  @State windowHeight: number = 0

  aboutToAppear(): void {
    try {
      let context = getContext(this) as common.UIAbilityContext;
      let promise = window.getLastWindow(context);
      promise.then((data) => {
        //获取窗口对象
        let windowClass = data;
        try {
          //获取窗口属性
          let properties = windowClass.getWindowProperties();
          let rect = properties.windowRect;
          //rect.width: 窗口宽度;rect.height: 窗口高度
          this.windowWidth = px2vp(rect.width)
          this.windowHeight = px2vp(rect.height)
        } catch (exception) {
          console.error('Failed to obtain the window properties. Cause: ' + JSON.stringify(exception));
        }
        console.info('Succeeded in obtaining the top window. Data: ' + JSON.stringify(data));
      }).catch((err: BusinessError) => {
        console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(err));
      });
    } catch (exception) {
      console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(exception));
    }
  }

  build() {
    Column({ space: 10 }) {
      Text('GetWindowProperties Page')
        .fontSize(20)
        .fontWeight(FontWeight.Bold)

      Text(`windowWidth = ${this.windowWidth}`)
      Text(`windowHeight = ${this.windowHeight}`)
    }
    .height('100%')
    .width('100%')
  }
}
點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消