0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙ArkTS声明式开发:跨平台支持列表【位置设置】 通用属性

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-05-31 11:17 次阅读

位置设置

设置组件的对齐方式、布局方向和显示位置。

说明:
开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

属性

名称参数类型描述
align[Alignment]设置元素内容在元素绘制区域内的对齐方式。 只在Stack、Button、Marquee、StepperItem、text、TextArea、TextInput中生效,其中和文本相关的组件Marquee、text、TextArea、TextInput的align结果参考[textAlign]。 不支持textAlign属性的组件则无法设置水平方向的文字对齐。 默认值:Alignment.Center 从API version 9开始,该接口支持在ArkTS卡片中使用。
direction[Direction]设置元素水平方向的布局。 默认值:Direction.Auto 从API version 9开始,该接口支持在ArkTS卡片中使用。
position[Position]绝对定位,设置元素左上角相对于父容器左上角偏移位置。在布局容器中,设置该属性不参与父容器布局,即不占位,仅在绘制时进行位置调整。 适用于置顶显示、悬浮按钮等组件在父容器中位置固定的场景。 从API version 9开始,该接口支持在ArkTS卡片中使用。
markAnchor[Position]设置元素在位置定位时的锚点,以元素左上角作为基准点进行偏移。通常配合position和offset属性使用,单独使用时,效果类似offset API version 9及以前,默认值为: { x: 0, y: 0 } API version 10:无默认值。 从API version 9开始,该接口支持在ArkTS卡片中使用。
offset[Position]相对定位,设置元素相对于自身的偏移量。设置该属性后子组件正常参与父容器布局,在绘制时基于父容器给予的offset做一次额外的偏移。 API version 9及以前,默认值为: { x: 0, y: 0 } API version 10:无默认值。 从API version 9开始,该接口支持在ArkTS卡片中使用。
alignRules9+{ left?: { anchor: string, align: [HorizontalAlign] }; right?: { anchor: string, align: [HorizontalAlign] }; middle?: { anchor: string, align: [HorizontalAlign] }; top?: { anchor: string, align: [VerticalAlign] }; bottom?: { anchor: string, align: [VerticalAlign] }; center?: { anchor: string, align: [VerticalAlign] } }指定相对容器的对齐规则,仅当父容器为[RelativeContainer]时生效。 - left:设置左对齐参数。 - right:设置右对齐参数。 - middle:设置中间对齐的参数。 - top:设置顶部对齐的参数。 - bottom:设置底部对齐的参数。 - center:设置中心对齐的参数。 该接口支持在ArkTS卡片中使用。说明:- anchor:设置作为锚点的组件的id值。 - align:设置相对于锚点组件的对齐方式。

示例

示例1

// xxx.ets
@Entry
@Component
struct PositionExample1 {
  build() {
    Column() {
      Column({ space: 10 }) {
        // 元素内容< 元素宽高,设置内容在与元素内的对齐方式
        Text('align').fontSize(9).fontColor(0xCCCCCC).width('90%')
        Stack() {
          Text('First show in bottom end').height('65%').backgroundColor(0xD2B48C)
          Text('Second show in bottom end').backgroundColor(0xF5DEB3).opacity(0.9)
        }.width('90%').height(50).margin({ top: 5 }).backgroundColor(0xFFE4C4)
        .align(Alignment.BottomEnd)
        Stack() {
          Text('top start')
        }.width('90%').height(50).margin({ top: 5 }).backgroundColor(0xFFE4C4)
        .align(Alignment.TopStart)

        // 父容器设置direction为Direction.Ltr,子元素从左到右排列
        Text('direction').fontSize(9).fontColor(0xCCCCCC).width('90%')
        Row() {
          Text('1').height(50).width('25%').fontSize(16).backgroundColor(0xF5DEB3)
          Text('2').height(50).width('25%').fontSize(16).backgroundColor(0xD2B48C)
          Text('3').height(50).width('25%').fontSize(16).backgroundColor(0xF5DEB3)
          Text('4').height(50).width('25%').fontSize(16).backgroundColor(0xD2B48C)
        }
        .width('90%')
        .direction(Direction.Ltr)
        // 父容器设置direction为Direction.Rtl,子元素从右到左排列
        Row() {
          Text('1').height(50).width('25%').fontSize(16).backgroundColor(0xF5DEB3).textAlign(TextAlign.End)
          Text('2').height(50).width('25%').fontSize(16).backgroundColor(0xD2B48C).textAlign(TextAlign.End)
          Text('3').height(50).width('25%').fontSize(16).backgroundColor(0xF5DEB3).textAlign(TextAlign.End)
          Text('4').height(50).width('25%').fontSize(16).backgroundColor(0xD2B48C).textAlign(TextAlign.End)
        }
        .width('90%')
        .direction(Direction.Rtl)
      }
    }
    .width('100%').margin({ top: 5 })
  }
}

align.png

示例2

鸿蒙文档.png

`HarmonyOSOpenHarmony鸿蒙文档籽料:mau123789v直接拿`

// xxx.ets
@Entry
@Component
struct PositionExample2 {
  build() {
    Column({ space: 20 }) {
      // 设置子组件左上角相对于父组件左上角的偏移位置
      Text('position').fontSize(12).fontColor(0xCCCCCC).width('90%')
      Row() {
        Text('1').size({ width: '30%', height: '50' }).backgroundColor(0xdeb887).border({ width: 1 }).fontSize(16)
          .textAlign(TextAlign.Center)
        Text('2 position(30, 10)')
          .size({ width: '60%', height: '30' })
          .backgroundColor(0xbbb2cb)
          .border({ width: 1 })
          .fontSize(16)
          .align(Alignment.Start)
          .position({ x: 30, y: 10 })
        Text('3').size({ width: '45%', height: '50' }).backgroundColor(0xdeb887).border({ width: 1 }).fontSize(16)
          .textAlign(TextAlign.Center)
        Text('4 position(50%, 70%)')
          .size({ width: '50%', height: '50' })
          .backgroundColor(0xbbb2cb)
          .border({ width: 1 })
          .fontSize(16)
          .position({ x: '50%', y: '70%' })
      }.width('90%').height(100).border({ width: 1, style: BorderStyle.Dashed })

      // 相对于起点偏移,其中x为最终定位点距离起点水平方向间距,x >0往左,反之向右。
      // y为最终定位点距离起点垂直方向间距,y >0向上,反之向下
      Text('markAnchor').fontSize(12).fontColor(0xCCCCCC).width('90%')
      Stack({ alignContent: Alignment.TopStart }) {
        Row()
          .size({ width: '100', height: '100' })
          .backgroundColor(0xdeb887)
        Text('text')
          .fontSize('30px')
          .textAlign(TextAlign.Center)
          .size({ width: 25, height: 25 })
          .backgroundColor(Color.Green)
          .markAnchor({ x: 25, y: 25 })
        Text('text')
          .fontSize('30px')
          .textAlign(TextAlign.Center)
          .size({ width: 25, height: 25 })
          .backgroundColor(Color.Green)
          .markAnchor({ x: -100, y: -25 })
        Text('text')
          .fontSize('30px')
          .textAlign(TextAlign.Center)
          .size({ width: 25, height: 25 })
          .backgroundColor(Color.Green)
          .markAnchor({ x: 25, y: -25 })
      }.margin({ top: 25 }).border({ width: 1, style: BorderStyle.Dashed })

      // 相对定位,x >0向右偏移,反之向左,y >0向下偏移,反之向上
      Text('offset').fontSize(12).fontColor(0xCCCCCC).width('90%')
      Row() {
        Text('1').size({ width: '15%', height: '50' }).backgroundColor(0xdeb887).border({ width: 1 }).fontSize(16)
          .textAlign(TextAlign.Center)
        Text('2  offset(15, 30)')
          .size({ width: 120, height: '50' })
          .backgroundColor(0xbbb2cb)
          .border({ width: 1 })
          .fontSize(16)
          .align(Alignment.Start)
          .offset({ x: 15, y: 30 })
        Text('3').size({ width: '15%', height: '50' }).backgroundColor(0xdeb887).border({ width: 1 }).fontSize(16)
          .textAlign(TextAlign.Center)
        Text('4 offset(-10%, 20%)')
          .size({ width: 100, height: '50' })
          .backgroundColor(0xbbb2cb)
          .border({ width: 1 })
          .fontSize(16)
          .offset({ x: '-5%', y: '20%' })
      }.width('90%').height(100).border({ width: 1, style: BorderStyle.Dashed })
    }
    .width('100%').margin({ top: 25 })
  }
}

position.png

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    55

    文章

    2123

    浏览量

    42274
收藏 人收藏

    评论

    相关推荐

    鸿蒙ArkTS声明开发:跨平台支持列表【图片边框设置通用属性

    从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
    的头像 发表于 05-31 09:41 467次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>开发</b>:跨<b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【图片边框<b class='flag-5'>设置</b>】 <b class='flag-5'>通用</b><b class='flag-5'>属性</b>

    鸿蒙ArkTS声明开发:跨平台支持列表【Z序控制】 通用属性

    stack会重叠组件, 默认后定义的在最上面,具有较高zIndex值的元素在zIndex较小的元素前面
    的头像 发表于 06-03 14:53 503次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>开发</b>:跨<b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【Z序控制】 <b class='flag-5'>通用</b><b class='flag-5'>属性</b>

    鸿蒙ArkTS的起源和简介

    新的声明开发范式,基于Skia的自绘制引擎构建可平台的独立的渲染能力。这是一种较为创新的方案,不过也有几点不足: Dart语言生态。尽管
    发表于 01-16 16:23

    鸿蒙语言ArkTS(更好的生产力与性能)

    ArkTS鸿蒙生态的应用开发语言 ArkTS提供了声明UI范式、状态管理
    发表于 02-17 15:56

    HUAWEI DevEco Studio 3.1版本发布,配套ArkTS声明开发全面升级

    HarmonyOS应用及服务的一站集成开发环境(IDE),DevEco Studio 3.1将配套ArkTS声明
    发表于 11-17 11:52

    HarmonyOS/OpenHarmony应用开发-ArkTS声明开发范式

    基于ArkTS声明开发范式的方舟开发框架是一套开发极简、高性能、
    发表于 01-17 15:09

    鸿蒙 OS 应用开发初体验

    的操作系统平台开发框架。HarmonyOS 的目标是实现设备的无缝协同和高性能。 DevEco Studio 对标 Android Studio,开发
    发表于 11-02 19:38

    鸿蒙开发ArkTS基础知识

    一、ArkTS简介 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配了鸿蒙的ArkUI框架,扩展了
    的头像 发表于 01-24 16:44 1214次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>之<b class='flag-5'>ArkTS</b>基础知识

    鸿蒙ArkTS声明开发:跨平台支持列表【按键事件】

    按键事件指组件与键盘、遥控器等按键设备交互时触发的事件,适用于所有可获焦组件,例如Button。对于Text,Image等默认不可获焦的组件,可以设置focusable属性为true后使用按键事件。
    的头像 发表于 05-28 18:12 576次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>开发</b>:跨<b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【按键事件】

    鸿蒙ArkTS声明开发:跨平台支持列表【显隐控制】 通用属性

    控制当前组件显示或隐藏。注意,即使组件处于隐藏状态,在页面刷新时仍存在重新创建过程,因此当对性能有严格要求时建议使用[条件渲染]代替。 默认值:Visibility.Visible 从API version 9开始,该接口支持ArkTS卡片中使用。
    的头像 发表于 06-03 14:46 361次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>开发</b>:跨<b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【显隐控制】 <b class='flag-5'>通用</b><b class='flag-5'>属性</b>

    鸿蒙ArkTS声明开发:跨平台支持列表【形状裁剪】 通用属性

    参数为相应类型的组件,按指定的形状对当前组件进行裁剪;参数为boolean类型时,设置是否按照父容器边缘轮廓进行裁剪。 默认值:false 从API version 9开始,该接口支持ArkTS卡片中使用。
    的头像 发表于 06-04 15:22 172次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>开发</b>:跨<b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【形状裁剪】 <b class='flag-5'>通用</b><b class='flag-5'>属性</b>

    鸿蒙ArkTS声明开发:跨平台支持列表【栅格设置通用属性

    默认占用列数,指useSizeType属性没有设置对应尺寸的列数(span)时,占用的栅格列数。
    的头像 发表于 06-05 09:28 182次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>开发</b>:跨<b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【栅格<b class='flag-5'>设置</b>】 <b class='flag-5'>通用</b><b class='flag-5'>属性</b>

    鸿蒙ArkTS声明开发:跨平台支持列表【多态样式】 通用属性

    设置组件不同状态的样式。 从API version 9开始,该接口支持ArkTS卡片中使用。
    的头像 发表于 06-07 09:48 160次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>开发</b>:跨<b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【多态样式】 <b class='flag-5'>通用</b><b class='flag-5'>属性</b>

    鸿蒙ArkTS声明开发:跨平台支持列表【前景色设置通用属性

    设置组件的前景颜色或者根据智能取色策略设置前景颜色。
    的头像 发表于 06-07 16:19 229次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>开发</b>:跨<b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【前景色<b class='flag-5'>设置</b>】 <b class='flag-5'>通用</b><b class='flag-5'>属性</b>

    鸿蒙ArkTS声明开发:跨平台支持列表【文本通用

    文本通用属性目前只针对包含文本元素的组件,设置文本样式。
    的头像 发表于 06-13 15:09 163次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b>式<b class='flag-5'>开发</b>:跨<b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【文本<b class='flag-5'>通用</b>】