HarmonyOS RelativeContainer相关问题

在ListItem中使用RelativeContainer,RelativeContainer没有自适应高度,应该怎么处理?

RelativeContainer() {
  Column() {
    Text("测试")
      .height(100)
  }
  .backgroundColor(Color.Pink)
  .id('content')
  .padding({ left: 15, right: 15 })
  .alignRules({
    left: { anchor: '__container__', align: HorizontalAlign.Start },
    right: { anchor: '__container__', align: HorizontalAlign.End },
    top: { anchor: '__container__', align: VerticalAlign.Top },
  })
}
.backgroundColor(Color.Orange)
.width('100%')
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
HarmonyOS
2025-01-09 17:45:55
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
shlp

可参考示例:https://gitee.com/harmonyos-cases/cases/blob/master/CommonAppDevelopment/feature/refreshtimeline/README.md

可以参考示例,用onAeraChange获取右侧高度,设置左侧线的高度:

@Component
struct test {
  @State item: string = ''
  @State h: number = 0

  build() {
    Row() {
      Line()
        .stroke('#CCCCCC')
        .startPoint([0, 0])
        .endPoint([0, this.h])
        .stroke(Color.Red)
        .strokeWidth(5)
        .strokeDashArray([10, 3])
        .height(this.h)
        .width(5)
      Column() {
        Text(this.item)
          .width('100%')
          .fontSize(16)
          .textAlign(TextAlign.Center)
          .borderRadius(10)
          .backgroundColor(0xFFFFFF)
        Button('我的')
      }.onAreaChange((oldValue: Area, newValue: Area) => {
        console.info(`Ace: on area change, oldValue is ${JSON.stringify(oldValue)} value is ${JSON.stringify(newValue)}`)
        this.h = newValue.height as number
      })
    }
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
// xxx.ets
@Entry
@Component
struct ListExample {
  private arr: string[] =
    ['xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 'xxxxxxxxxx',      'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx']

  build() {
    Column() {
      List({ space: 20, initialIndex: 0 }) {
        ForEach(this.arr, (item: string) => {
          ListItem() {
            test({ item: item })
          }
        }, (item: string) => item)
      }
      .listDirection(Axis.Vertical) // 排列方向
      .scrollBar(BarState.Off)
      .friction(0.6)
      .divider({
        strokeWidth: 2,
        color: 0xFFFFFF,
        startMargin: 20,
        endMargin: 20
      }) // 每行之间的分界线
      .edgeEffect(EdgeEffect.Spring) // 边缘效果设置为Spring
      .onScrollIndex((firstIndex: number, lastIndex: number, centerIndex: number) => {
        console.info('first' + firstIndex)
        console.info('last' + lastIndex)
        console.info('center' + centerIndex)
      })
      .onScrollVisibleContentChange((start: VisibleListContentInfo, end: VisibleListContentInfo) => {
        console.log(' start index: ' + start.index +
          ' start item group area: ' + start.itemGroupArea +
          ' start index in group: ' + start.itemIndexInGroup)
        console.log(' end index: ' + end.index +
          ' end item group area: ' + end.itemGroupArea +
          ' end index in group: ' + end.itemIndexInGroup)
      })
      .onDidScroll((scrollOffset: number, scrollState: ScrollState) => {
        console.info(`onScroll scrollState = ScrollState` + scrollState + `, scrollOffset = ` + scrollOffset)
      })
      .width('90%')
    }
    .width('100%')
    .height('100%')
    .backgroundColor(0xDCDCDC)
    .padding({ top: 5 })
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
分享
微博
QQ
微信
回复
2025-01-09 20:02:07


相关问题
HarmonyOS RelativeContainer自适应高度相关
791浏览 • 1回复 待解决
HarmonyOS RelativeContainer的居中问题
1278浏览 • 1回复 待解决
HarmonyOS Scroll 嵌套 RelativeContainer 问题
1252浏览 • 1回复 待解决
HarmonyOS RelativeContainer的使用问题
517浏览 • 1回复 待解决
HarmonyOS Scroll嵌套RelativeContainer 问题
1085浏览 • 1回复 待解决
HarmonyOS RelativeContainer子控件显示问题
1233浏览 • 1回复 待解决
HarmonyOS RelativeContainer宽高设置问题
527浏览 • 1回复 待解决
HarmonyOS RelativeContainer宽高自适应问题
1714浏览 • 1回复 待解决
HarmonyOS BindSheet相关问题
1436浏览 • 1回复 待解决
HarmonyOS Grid相关问题
1271浏览 • 1回复 待解决
HarmonyOS 证书相关问题
1059浏览 • 1回复 待解决
HarmonyOS AccountKit相关问题
1242浏览 • 1回复 待解决
HarmonyOS 线程相关问题
1336浏览 • 1回复 待解决
HarmonyOS KVStore 相关问题
1038浏览 • 1回复 待解决
HarmonyOS string相关问题
946浏览 • 1回复 待解决
HarmonyOS Worker相关问题
919浏览 • 1回复 待解决
HarmonyOS Lib相关问题
719浏览 • 1回复 待解决
HarmonyOS音频相关问题
1523浏览 • 1回复 待解决
HarmonyOS CardRecognition相关问题
940浏览 • 1回复 待解决
HarmonyOS ApplicationContext相关问题
1032浏览 • 1回复 待解决
HarmonyOS 打包相关问题
956浏览 • 1回复 待解决
HarmonyOS @Event相关问题
933浏览 • 1回复 待解决
HarmonyOS 混淆相关问题
793浏览 • 1回复 待解决