成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

51CTO 開源基礎軟件社區

https://ost.51cto.com

場景說明

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

position

使用語法:

組件.position({x,y})

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

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

示例

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

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

示例圖如下:

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})
}
......

示例圖如下:

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)-開源基礎軟件社區

參考

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

51CTO 開源基礎軟件社區

https://ost.51cto.com

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2010-09-13 12:56:56

CSSpositionfloat

2010-09-02 11:18:46

CSSfloatposition

2010-08-26 16:48:48

DIV絕對定位相對定位

2010-09-10 11:32:23

CSS絕對定位CSS相對定位

2010-08-16 11:28:02

DIV

2010-09-06 11:17:19

CSS相對定位CSS絕對定位

2010-09-14 16:39:26

CSS DIV相對定位CSS DIV絕對定位

2010-08-31 10:30:59

CSSpositionz-index

2010-09-10 12:40:06

CSS相對定位CSS絕對定位

2010-09-06 11:11:31

CSS定位

2010-09-15 14:56:18

CSSposition:fi

2010-08-17 11:10:16

DIV+CSS

2010-09-15 14:00:06

position屬性DIV

2010-09-01 14:02:27

絕對定位浮動CSS

2010-09-08 16:22:32

PositionCSS

2010-09-10 10:47:47

CSSposition

2010-08-24 15:11:24

PositionCSS

2010-08-16 08:54:48

DIVCSS

2010-09-14 16:57:29

DIV絕對定位CSS

2010-09-15 15:03:52

CSS positio
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www日| 在线观看av免费 | 一区二区精品 | 美女久久久久久久 | 久久久国产一区 | 久草网址| 一区二区免费在线 | 久久亚洲精品国产精品紫薇 | 青青草在线播放 | 日韩av在线一区二区三区 | 国产高清一区二区三区 | 精品在线观看一区二区 | 精品一区在线看 | 黄色在线免费看 | 福利网址| 日韩高清中文字幕 | 欧美久久一级 | 欧美精品一区二区三区蜜桃视频 | 午夜视频网站 | 日韩视频区 | 欧美性受xxxx| 国产亚洲一区二区三区在线观看 | 中文字幕第十页 | 欧美日产国产成人免费图片 | 欧美a区 | 欧美日韩一 | 亚洲成a | 国精日本亚洲欧州国产中文久久 | 中文字幕亚洲精品 | 亚洲免费视频网站 | 秋霞电影一区二区三区 | 一区二区视频在线 | 欧美日韩国产一区二区 | 日本黄色激情视频 | 亚洲免费三级 | 伊人精品在线 | 欧美网址在线观看 | 久久免费精品视频 | 国产精品久久久久久吹潮 | 国产精品乱码一区二三区小蝌蚪 | 欧美高清一区 |