HarmonyOS 鸿蒙Next ListItem控件中不能使用多个组件吗?
HarmonyOS 鸿蒙Next ListItem控件中不能使用多个组件吗?
这样写报错,The ‘ListItem’ component can have only one child component. <ArkTSCheck>
List({ space:2, initialIndex: 0 }) {
ForEach(this.arr, (item: string) => {
ListItem() {
Text(’’ + item)
.width(‘100%’)
.height(50)
.fontColor(‘white’)
.fontSize(16)
.textAlign(TextAlign.Start)
.padding({left:20})
// 添加右箭头图标
Image($rawfile(‘arrowhead.png’)) // 右箭头图片资源
.width(10) // 设置箭头的宽度
.height(10) // 设置箭头的高度
.margin({top:‘20%’})
}
}, (item: string) => item)
}
7 回复
把Text、Image组件放到一个容器组件里,如Row、Column等
写法有点问题,可以看一下他的那个结构,或者看一下有一个listcode的demo
无限套娃呗,嵌套多简单,column row 随便用
ListItem下嵌套Column()或者Row()
[@Entry](/user/Entry)
[@Component](/user/Component)
struct Page04 {
[@State](/user/State) arr:string[] = ['aa','bb','cc','dd','ee']
build() {
Column() {
List({ space:2, initialIndex: 0 }) {
ForEach(this.arr, (item: string) => {
ListItem() {
Column(){
Text('' + item)
.width('100%')
.height(50)
.fontColor('white')
.fontSize(16)
.textAlign(TextAlign.Start)
.padding({left:20})
// 添加右箭头图标
Image($r('app.media.app_icon')) // 右箭头图片资源
.width(10) // 设置箭头的宽度
.height(10) // 设置箭头的高度
.margin({top:'20%'})
}
}
}, (item: string) => item)
}
}
.backgroundColor(Color.Pink)
.height('100%')
.width('100%')
}
}
好的好的,非常感谢
listItem有且只有一个子组件,可以在子组件内写多个组件啊
HarmonyOS 鸿蒙Next ListItem控件中确实不能使用多个组件。
在HarmonyOS的鸿蒙Next系统中,ListItem控件的设计原则是其内部只能包含一个子组件。如果尝试在ListItem中直接添加多个组件(如Text、Image等),编译器会报错,提示“ListItem component can have only one child component”。
为了解决这个问题,开发者可以使用容器组件(如Row、Column、Stack等)来包裹多个子组件,然后再将这个容器组件作为ListItem的唯一子组件。这样,就可以实现ListItem中显示多个组件的效果,同时遵守系统的设计规范。
例如,可以在ListItem中使用Row组件来水平排列Text和Image等子组件,从而达到所需的布局效果。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。