当前位置:   article > 正文

HarmonyOS/OpenHarmony应用开发-ArkTS自适应线性布局自适应延伸实现_arkts 延伸能力怎么实现

arkts 延伸能力怎么实现

自适应延伸是在不同尺寸设备下,当页面显示内容个数不一并延伸到屏幕外时,可通过滚动条拖动展示。适用于线性布局中内容无法一屏展示的场景。常见以下两类实现方法。
一、List组件
List子项过多一屏放不下时,未展示的子项通过滚动条拖动显示。通过scrollBar属性设置滚动条的常驻状态,edgeEffect属性设置拖动到极限的回弹效果。
纵向List:

  1. @Entry
  2. @Component
  3. struct ListExample1 {
  4. @State arr: string[] = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"]
  5. @State alignListItem: ListItemAlign = ListItemAlign.Start
  6. build() {
  7. Column() {
  8. List({ space: 20, initialIndex: 0 }) {
  9. ForEach(this.arr, (item) => {
  10. ListItem() {
  11. Text('' + item)
  12. .width('100%')
  13. .height(100)
  14. .fontSize(16)
  15. .textAlign(TextAlign.Center)
  16. .borderRadius(10)
  17. .backgroundColor(0xFFFFFF)
  18. }
  19. .border({ width: 2, color: Color.Green })
  20. }, item => item)
  21. }
  22. .border({ width: 2, color: Color.Red, style: BorderStyle.Dashed })
  23. .scrollBar(BarState.On) // 滚动条常驻
  24. .edgeEffect(EdgeEffect.Spring) // 滚动到边缘再拖动回弹效果
  25. }.width('100%').height('100%').backgroundColor(0xDCDCDC).padding(20)
  26. }
  27. }


横向List

  1. @Entry
  2. @Component
  3. struct ListExample2 {
  4. @State arr: string[] = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"]
  5. @State alignListItem: ListItemAlign = ListItemAlign.Start
  6. build() {
  7. Column() {
  8. List({ space: 20, initialIndex: 0 }) {
  9. ForEach(this.arr, (item) => {
  10. ListItem() {
  11. Text('' + item)
  12. .height('100%')
  13. .width(100)
  14. .fontSize(16)
  15. .textAlign(TextAlign.Center)
  16. .borderRadius(10)
  17. .backgroundColor(0xFFFFFF)
  18. }
  19. .border({ width: 2, color: Color.Green })
  20. }, item => item)
  21. }
  22. .border({ width: 2, color: Color.Red, style: BorderStyle.Dashed })
  23. .scrollBar(BarState.On) // 滚动条常驻
  24. .edgeEffect(EdgeEffect.Spring) // 滚动到边缘再拖动回弹效果
  25. .listDirection(Axis.Horizontal) // 列表水平排列
  26. }.width('100%').height('100%').backgroundColor(0xDCDCDC).padding(20)
  27. }
  28. }


二、Scroll组件
线性布局中,当子组件的布局尺寸超过父组件的尺寸时,内容可以滚动。在Column或者Row外层包裹一个可滚动的容器组件Scroll实现。
纵向Scroll:

  1. @Entry
  2. @Component
  3. struct ScrollExample {
  4. scroller: Scroller = new Scroller();
  5. private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
  6. build() {
  7. Scroll(this.scroller) {
  8. Column() {
  9. ForEach(this.arr, (item) => {
  10. Text(item.toString())
  11. .width('90%')
  12. .height(150)
  13. .backgroundColor(0xFFFFFF)
  14. .borderRadius(15)
  15. .fontSize(16)
  16. .textAlign(TextAlign.Center)
  17. .margin({ top: 10 })
  18. }, item => item)
  19. }.width('100%')
  20. }
  21. .backgroundColor(0xDCDCDC)
  22. .scrollable(ScrollDirection.Vertical) // 滚动方向纵向
  23. .scrollBar(BarState.On) // 滚动条常驻显示
  24. .scrollBarColor(Color.Gray) // 滚动条颜色
  25. .scrollBarWidth(30) // 滚动条宽度
  26. .edgeEffect(EdgeEffect.Spring) // 滚动到边沿后回弹
  27. }
  28. }

复制


横向Scroll:


参考引用自官方文档。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/255099?site
推荐阅读
相关标签
  

闽ICP备14008679号