鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:安全区域)

这篇具有很好参考价值的文章主要介绍了鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:安全区域)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

安全区域是指页面的显示区域,默认不与系统设置的非安全区域比如状态栏、导航栏区域重叠,默认情况下开发者开发的界面都被布局在安全区域内。提供属性方法允许开发者设置组件绘制内容突破安全区域的限制,通过expandSafeArea属性支持组件不改变布局情况下扩展其绘制区域至安全区外,通过设置setKeyboardAvoidMode来配置虚拟键盘弹出时页面的避让模式。

说明:

从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

expandSafeArea

expandSafeArea(types?: Array<SafeAreaType>, edges?: Array<SafeAreaEdge>)

控制组件扩展其安全区域。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名 类型 必填 说明
types Array <SafeAreaType> 非必填,配置扩展安全区域的类型。
默认值:
[SafeAreaType.SYSTEM, SafeAreaType.CUTOUT, SafeAreaType.KEYBOARD]
edges Array <SafeAreaEdge> 非必填,配置扩展安全区域的方向。
[SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM, SafeAreaEdge.START, SafeAreaEdge.END]
扩展至所有非安全区域。

说明:

设置expandSafeArea属性进行组件绘制扩展时,组件不能设置固定宽高尺寸(百分比除外)。

安全区域不会限制内部组件的布局和大小,不会裁剪内部组件。

setKeyboardAvoidMode11+

setKeyboardAvoidMode(value: KeyboardAvoidMode)

控制虚拟键盘抬起时页面的避让模式。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名 类型 必填 说明
value KeyboardAvoidMode 控制虚拟键盘抬起时页面的避让模式。
默认值: KeyboardAvoidMode.OFFSET
键盘抬起时默认页面避让模式为上抬模式。
必填,配置虚拟键盘避让时的页面避让模式。

getKeyboardAvoidMode

getKeyboardAvoidMode(): KeyboardAvoidMode

返回虚拟键盘抬起时的页面避让模式。

系统能力: SystemCapability.ArkUI.ArkUI.Full

返回值:

名称 说明
KeyboardAvoidMode 返回虚拟键盘抬起时的页面避让模式。

示例

示例1

// xxx.ets
@Entry
@Component
struct SafeAreaExample1 {
  @State text: string = ''
  controller: TextInputController = new TextInputController()

  build() {
    Row() {
        Column()
          .height('100%').width('100%')
          .backgroundImage($r('app.media.bg')).backgroundImageSize(ImageSize.Cover)
          .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])
    }.height('100%')
  }
}

.expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS

示例2

@Entry
@Component
struct SafeAreaExample {
  @State text: string = ''
  controller: TextInputController = new TextInputController()

  build() {
    Row() {
      Stack() {
        Column()
          .height('100%').width('100%')
          .backgroundImage($r('app.media.bg')).backgroundImageSize(ImageSize.Cover)
          .expandSafeArea([SafeAreaType.KEYBOARD, SafeAreaType.SYSTEM])
        Column() {
          Button('Set caretPosition 1')
            .onClick(() => {
              this.controller.caretPosition(1)
            })
          TextInput({ text: this.text, placeholder: 'input your word...', controller: this.controller })
            .placeholderFont({ size: 14, weight: 400 })
            .width(320).height(40).offset({y: 120})
            .fontSize(14).fontColor(Color.Black)
            .backgroundColor(Color.White)
        }.width('100%').alignItems(HorizontalAlign.Center)
      }
    }.height('100%')
  }
}

.expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS

示例3

import { KeyboardAvoidMode } from '@ohos.arkui.UIContext';

  onWindowStageCreate(windowStage: window.WindowStage) {
    // Main window is created, set main page for this ability
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');

    windowStage.loadContent('pages/Index', (err, data) => {
      let a = windowStage.getMainWindowSync().getUIContext().getKeyboardAvoidMode();
      windowStage.getMainWindowSync().getUIContext().setKeyboardAvoidMode(KeyboardAvoidMode.RESIZE);
      if (err.code) {
        hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
        return;
      }
      hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');
    });
  }

@Entry
@Component
struct KeyboardAvoidExample {
    build() {
    Column() {
      Row().height("30%").width("100%").backgroundColor(Color.Gray)
      TextArea().width("100%").borderWidth(1)
      Text("I can see the bottom of the page").width("100%").textAlign(TextAlign.Center).backgroundColor(Color.Pink).layoutWeight(1)
    }.width('100%').height("100%")
  }
}

.expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS

示例4

import { KeyboardAvoidMode } from '@ohos.arkui.UIContext';

  onWindowStageCreate(windowStage: window.WindowStage) {
    // Main window is created, set main page for this ability
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');

    windowStage.loadContent('pages/Index', (err, data) => {
      let a = windowStage.getMainWindowSync().getUIContext().getKeyboardAvoidMode();
      windowStage.getMainWindowSync().getUIContext().setKeyboardAvoidMode(KeyboardAvoidMode.OFFSET);
      if (err.code) {
        hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
        return;
      }
      hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');
    });
  }

@Entry
@Component
struct KeyboardAvoidExample {
    build() {
    Column() {
      Row().height("30%").width("100%").backgroundColor(Color.Gray)
      TextArea().width("100%").borderWidth(1)
      Text("I can see the bottom of the page").width("100%").textAlign(TextAlign.Center).backgroundColor(Color.Pink).layoutWeight(1)
    }.width('100%').height("100%")
  }
}

.expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS

最后,有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(Harmony NEXT)资料用来跟着学习是非常有必要的。 

这份鸿蒙(Harmony NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点。

希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!

 获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

鸿蒙(Harmony NEXT)最新学习路线

.expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS

  •  HarmonOS基础技能

.expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS

  • HarmonOS就业必备技能 .expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS
  •  HarmonOS多媒体技术

.expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS

  • 鸿蒙NaPi组件进阶

.expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS

  • HarmonOS高级技能

.expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS

  • 初识HarmonOS内核 .expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS
  • 实战就业级设备开发

.expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS

有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。

获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

《鸿蒙 (OpenHarmony)开发入门教学视频》

.expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS

《鸿蒙生态应用开发V2.0白皮书》

.expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS

《鸿蒙 (OpenHarmony)开发基础到实战手册》

OpenHarmony北向、南向开发环境搭建

.expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS

 《鸿蒙开发基础》

  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……

.expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS

 《鸿蒙开发进阶》

  • Stage模型入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 通知与窗口管理
  • 多媒体技术
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向未来设计
  • 鸿蒙系统移植和裁剪定制
  • ……

.expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS

《鸿蒙进阶实战》

  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

.expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS

 获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

总结

总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。 

.expandsafearea([safeareatype.system],[safeareaedge.top,safeareaedge.bottom],鸿蒙,鸿蒙-ArkTS,harmonyos,华为,android,鸿蒙,鸿蒙系统,安全,ArkTS文章来源地址https://www.toymoban.com/news/detail-861652.html

到了这里,关于鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:安全区域)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:动态属性设置)

    动态设置组件的属性,支持开发者在属性设置时使用if/else语法,且根据需要使用多态样式设置属性。 说明: 从API Version 11开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 attributeModifier(modifier: AttributeModifierT) 动态设置组件的属性方法。 系统能

    2024年04月15日
    浏览(44)
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:组件内容模糊)

    为当前组件添加内容模糊效果。 说明: 从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 foregroundBlurStyle(value: BlurStyle, options?: ForegroundBlurStyleOptions) 为当前组件提供内容模糊能力。 系统能力:  SystemCapability.ArkUI.ArkUI.Full 参数: 参数

    2024年03月09日
    浏览(57)
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:CalendarPicker)

    日历选择器组件,提供下拉日历弹窗,可以让用户选择日期。 说明: 该组件从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 无 CalendarPicker(options?: CalendarOptions) 日历选择器。 系统能力:  SystemCapability.ArkUI.ArkUI.Full 参数: 参数名

    2024年03月09日
    浏览(45)
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Search)

    搜索框组件,适用于浏览器的搜索内容输入框等应用场景。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 无 Search(options?: { value?: string, placeholder?: ResourceStr, icon?: string, controller?: SearchController }) 参数: 参数名 参数类型

    2024年03月24日
    浏览(59)
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Flex)

    以弹性方式布局子组件的容器组件。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 Flex组件在渲染时存在二次布局过程,因此在对性能有严格要求的场景下建议使用Column、Row代替。 Flex组件主轴默认不设置时撑满父容

    2024年04月11日
    浏览(52)
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Scroll)

    可滚动的容器组件,当子组件的布局尺寸超过父组件的尺寸时,内容可以滚动。 说明: 该组件从API version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 该组件嵌套List子组件滚动时,若List不设置宽高,则默认全部加载,在对性能有要求的场

    2024年04月13日
    浏览(74)
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(自定义事件分发)

    ArkUI在处理触屏事件时,会在触屏事件触发前进行按压点和组件区域的触摸测试,来收集需要响应触屏事件的组件,再基于触摸测试结果分发相应的触屏事件。在父节点,开发者可以通过onChildTouchTest决定如何让子节点去做触摸测试,影响子组件的触摸测试,最终影响后续的触

    2024年04月14日
    浏览(57)
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:List)

    列表包含一系列相同宽度的列表项。适合连续、多行呈现同类数据,例如图片和文本。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 该组件内容区小于一屏时,默认没有回弹效果。需要回弹效果,可以通过edgeEffe

    2024年04月13日
    浏览(108)
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Checkbox)

    提供多选框组件,通常用于某选项的打开或关闭。 说明: API version 11开始,Checkbox默认样式由圆角方形变为圆形。 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 无 Checkbox(options?: CheckboxOptions) 多选框组件。 卡片能力:  从

    2024年04月11日
    浏览(53)
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:ImageAnimator)

    提供帧动画组件来实现逐帧播放图片的能力,可以配置需要播放的图片列表,每张图片可以配置时长。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 无 ImageAnimator() 从API version 10开始,该接口支持在ArkTS卡片中使用。

    2024年03月15日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包