激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

服務器資訊|IT/互聯網|云計算|區塊鏈|軟件資訊|操作系統|手機數碼|百科知識|免費資源|頭條新聞|

服務器之家 - 新聞資訊 - 操作系統 - 組件布局中相對定位的分類和使用(Position、MarkAnchor、Offset)

組件布局中相對定位的分類和使用(Position、MarkAnchor、Offset)

2023-11-24 17:04未知服務器之家 操作系統

想了解更多關于開源的內容,請訪問: 本站開源基礎軟件社區 場景說明 OpenHarmony為開發者提供了豐富的組件布局能力,當開發者在布局時希望組件的位置不采用固定的對齊方式,就可以使用相對布局對組件進行精確定位。其中p

組件布局中相對定位的分類和使用(Position、MarkAnchor、Offset)

想了解更多關于開源的內容,請訪問:

本站開源基礎軟件社區

場景說明

OpenHarmony為開發者提供了豐富的組件布局能力,當開發者在布局時希望組件的位置不采用固定的對齊方式,就可以使用相對布局對組件進行精確定位。其中position、markAnchor、offset三種方式可以實現相對定位,開發者容易混淆,本文將結合圖文和具體示例,為大家講解三者的用法和區別。

position

使用語法:

組件.position({x,y})

開發者可以通過position屬性來固定組件的位置。以父組件的左上角為坐標原點,添加了position屬性的子組件左上角固定在參數x、y指定的坐標點。x,y均延坐標箭頭方向遞增。

參考坐標圖如下(以x>0,y>0為例):

組件布局中相對定位的分類和使用(Position、MarkAnchor、Offset)

示例

本例在一個Row組件中添加一個Text子組件,如果希望Text組件相對于Row組件左上角向右下方偏移到(30,20)的位置,使用position實現的代碼如下:

Row() {
  Text('.postion({x:30,y:20})')
    ......
    .position({ x: 30, y: 20 })
}
......

示例圖如下:

組件布局中相對定位的分類和使用(Position、MarkAnchor、Offset)

markAnchor

使用語法:

組件.markAnchor({x,y})

開發者也可以通過markAnchor屬性對組件進行相對定位。markAnchor屬性通常和position屬性一起使用,也可以單獨使用。

  • 當單獨使用markAnchor屬性時,markAnchor的坐標系會隨父組件中子組件對齊方式的變化而變化,當子組件為頂部對齊時,坐標系原點為父組件的左上角;當子組件居中對齊時,坐標系原點為父組件高度2/3處的頂點;當子組件底部對齊時,坐標系原點為父組件高度1/3處的頂點。
    添加了markAnchor屬性的組件的左上角固定在參數x、y指定的坐標點,與position屬性不同的是,x軸和y軸的遞增方向相反。
    以父組件中子組件頂部對齊為例,參考坐標圖如下(以x>0,y>0為例):

示例

本例在一個Column組件中添加一個Text子組件,由于Column組件默認子組件頂部對齊,所以坐標原點為Column組件的左上角。如果希望Text組件相對于Column組件左上角向左上方偏移到(25,25)的位置,使用markAnchor實現的代碼如下:

Column() {
  Text('.markAnchor({x:25,y:25})')
    ......
    .markAnchor({ x: 25, y: 25 })
}
......

示例圖如下:

組件布局中相對定位的分類和使用(Position、MarkAnchor、Offset)組件布局中相對定位的分類和使用(position、markAnchor、offset)-開源基礎軟件社區

  • 當跟position屬性一起使用時,此時會先以父組件的左上角為原點移動到position參數x,y指定的坐標點,然后以position中x,y的值為坐標原點,再將組件按照markAnchor中x,y的值進行移動。這里就體現出錨點的概念,position的位置即為錨點。

說明:
由于position的坐標系不受父組件中子組件的對齊方式影響,所以當和position屬性一起使用時,markAnchor的坐標系也不受父組件中子組件的對齊方式影響。

  • 其坐標圖如下(以x>0,y>0為例):

示例

本例在一個Stack組件中添加一個Text子組件,同時給Text組件添加position屬性和markAnchor屬性。Text組件會先采用position的坐標系,以Stack組件左上角為原點,移動到(50,50)的位置,再以(50,50)為坐標原點,采用markAnchor的坐標系移動到(25,25)的位置,代碼如下:

Stack({ alignContent: Alignment.TopStart }) {
  Text('.markAnchor({x:25,y:25}) .position({x:50,y:50})')
    ......
    .markAnchor({ x: 25, y: 25 })
    .position({x:50,y:50})
}
......

示例圖如下:

組件布局中相對定位的分類和使用(Position、MarkAnchor、Offset)

offset

使用語法:

組件.offset({x,y})

開發者可以通過offset屬性設置組件相對于前一個組件的偏移量。添加了offset屬性的組件以前一個組件的右上角為坐標原點進行偏移,其左上角偏移到(x,y)坐標點。x,y均延坐標箭頭方向遞增。

參考坐標圖如下(以x>0,y>0為例):

組件布局中相對定位的分類和使用(Position、MarkAnchor、Offset)組件布局中相對定位的分類和使用(position、markAnchor、offset)-開源基礎軟件社區

示例

本例在一個Row組件中添加A、B兩個Text子組件,如果希望B相對于A的左上角偏移到(30,0)的位置,使用offset實現的代碼如下:

Row() {
  Text('A')
    ......
  Text('B.offset({x:30, y:0})')
    .offset({ x: 30, y: 0 })
    ......
}.width('90%').height(50)
......

示例圖如下:

組件布局中相對定位的分類和使用(Position、MarkAnchor、Offset)組件布局中相對定位的分類和使用(position、markAnchor、offset)-開源基礎軟件社區

參考

  • position/markAnchor/offset屬性使用指導

想了解更多關于開源的內容,請訪問:

本站開源基礎軟件社區

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久久久久久久久亚洲精品 | 久久99精品视频在线观看 | www.17c亚洲蜜桃 | 麻豆传传媒久久久爱 | 欧美一区在线观看视频 | 久草在线视频免费播放 | av免费在线播放网址 | av大全在线免费观看 | 久久国产夫妻视频 | 成年人网站视频免费 | 欧美精品一区自拍a毛片在线视频 | 久久天 | 小雪奶水翁胀公吸小说最新章节 | 国产精品亚洲综合 | 国产精品视频免费网站 | 一区二区三区四区在线 | 中文字幕网址 | 久草视频在线资源 | 看全色黄大色黄大片女图片 | 欧美人与性禽动交精品 | 国产精品久久久久久久久久10秀 | 欧美一级高潮 | 九九午夜| 成人三级视频在线观看 | 国产一级毛片高清视频完整版 | 黄色免费av网站 | 中国免费黄色 | 免费观看又色又爽又黄的崩锅 | 伊人二本二区 | 国产精品久久久久久久四虎电影 | 国产精品.com| 久久蜜桃精品一区二区三区综合网 | 欧美一级色片 | 凹凸成人精品亚洲精品密奴 | 久久55| www久久久久久| h视频在线免费看 | 日本娇小videos高潮 | 日韩av片在线播放 | 4480午夜| 中午字幕无线码一区2020 |