HarmonyOS Text无法自适应

@Entry
@Component
struct TestPage {
  commentsList: CommentList[] = []

  build() {
    List() {
      ForEach(this.commentsList, (item: CommentList, index: number) => {
        ListItem() {
          Row() {
            Image($r('app.media.head'))
              .alt($r('app.media.head'))
              .height(20).width(20)
              .margin(8)
            Text() {
              Span(item.name + ':')
                .fontColor($r('app.color.AAAAAA'))
                .fontSize('14fp')
              Span(item.content)
                .fontColor($r('app.color.333333'))
                .fontSize('14fp')
            }
            .margin({ top: 10, bottom: 10, right: 12 })

          }
          .margin({
            top: 5,
            bottom: 5,
            left: 20,
            right: 20
          })
          .borderRadius(4)
          .backgroundColor($r('app.color.F5F5F5'))
        }
      })
    }
    .scrollBar(BarState.Off)
    .width('100%')
    .height('100%')
    .margin({ top: 50 })
  }

  aboutToAppear(): void {
    this.commentsList.push(new CommentList('111', 'xxx'))
    this.commentsList.push(new CommentList('222', 'xxx'))
    this.commentsList.push(new CommentList('333', 'xxx'))
    this.commentsList.push(new CommentList('555', 'xxx'))
  }
}

@Observed
export class CommentList {
  name: string
  content: string

  constructor(name: string, content: string) {
    this.name = name
    this.content = content
  }
}
HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

Row布局时若子组件不设置flexShrink则默认不会压缩子组件,即所有子组件主轴大小累加可超过容器主轴。可以对子组件设置layoutWeight(1)进行解决或者设置flexShrink来解决row中子组件超过row容器的情况。但是让子组件重新布局这种情况就会出现红框没有去除的问题,无法避免。目前想到解决方案是去除左右间距来实现想要的效果,参考示例:

@Entry
@Component
struct TestPage {
  commentsList: CommentList[] = []

  build() {
    List() {
      ForEach(this.commentsList, (item: CommentList, index: number) => {
        ListItem() {
          Row() {
            Image($r('app.media.sun'))
              .alt($r('app.media.startIcon'))
              .height(20).width(20)// .margin(8)
              .margin({
                top: 8,
                bottom: 8,
                // left: 8
              })
            Text() {
              Span(item.name + ':')
                .fontColor(Color.Red)
                .fontSize('14fp')
              Span(item.content)
                .fontColor(Color.Yellow)
                .fontSize('14fp')
            }
            .margin({
              top: 10,
              bottom: 10,
              right: 12
            })

          }
          .margin({
            top: 5,
            bottom: 5,
            // left: 20,
            right: 20
          })
          .borderRadius(4)
          .backgroundColor(Color.Black)
        }
      })
    }
    .scrollBar(BarState.Off)
    .width('100%')
    .height('100%')
    .margin({ top: 50 })
  }

  aboutToAppear(): void {
    this.commentsList.push(new CommentList('111', 'xxx'))
    this.commentsList.push(new CommentList('222', 'xxx'))
    this.commentsList.push(new CommentList('333',
      'xxx'))
    this.commentsList.push(new CommentList('555',
      'xxx'))
  }
}

@Observed
export class CommentList {
  name: string
  content: string

  constructor(name: string, content: string) {
    this.name = name
    this.content = content
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS RelativeContainer无法自适应高度
405浏览 • 1回复 待解决
WebView加载网页无法自适应
290浏览 • 1回复 待解决
HarmonyOS 高度自适应
265浏览 • 1回复 待解决
HarmonyOS RichText自适应高度
13浏览 • 1回复 待解决
HarmonyOS Web高度自适应问题
786浏览 • 1回复 待解决
HarmonyOS RichText能否自适应高度
21浏览 • 1回复 待解决
HarmonyOS webview自适应屏幕
13浏览 • 1回复 待解决
HarmonyOS RelativeContainer宽高自适应问题
680浏览 • 1回复 待解决
HarmonyOS Grid高度根据内容自适应
93浏览 • 1回复 待解决
HarmonyOS GridItem自适应高度问题
422浏览 • 1回复 待解决
HarmonyOS webview如何设置自适应
760浏览 • 1回复 待解决
HarmonyOS 高度自适应的问题
351浏览 • 1回复 待解决
HarmonyOS image加载图片宽高自适应
80浏览 • 1回复 待解决
HarmonyOS Grid自适应高度和拖拽问题
558浏览 • 1回复 待解决
HarmonyOS web组件自适应高度问题
1039浏览 • 1回复 待解决
HarmonyOS 自适应父组件高度问题
1136浏览 • 1回复 待解决
HarmonyOS Grid组件能否高度自适应
42浏览 • 1回复 待解决