
#跟着坚果学鸿蒙# ——ChipGroup-有最右侧的builder
·
前言
本系列文章旨在通过系统性地测试官网提供的各类功能示例,以实践验证其实际应用效果。我们将从开发者实际需求出发,通过完整运行每个示例代码,详细记录执行过程与结果输出,从而评估这些示例能否为开发者提供有效的帮助。
示例效果说明
该示例通过配置suffix实现最右侧的自定义组件效果。
示例代码
import { ChipSize, ChipGroup, IconGroupSuffix } from '@kit.ArkUI'
@Entry
@Preview
@Component
struct Index {
@State selected_index: Array<number> = [0, 1, 2, 3, 4, 5, 6]
@State selected_state: boolean = true;
@LocalBuilder
ChipGroupSuffix(): void {
IconGroupSuffix({
items: [{
icon: { src: $r('sys.media.ohos_ic_public_search_filled'), size: { width: 36, height: 36 } },
action: () => {
if (this.selected_state == false) {
this.selected_index = [0, 1, 2, 3, 4, 5, 6]
this.selected_state = true
} else {
this.selected_index = []
this.selected_state = false
}
}
}
]
})
}
build() {
Column() {
ChipGroup({
items: [
{
prefixIcon: { src: $r('app.media.1') },
label: { text: "操作块1" },
suffixIcon: { src: $r('sys.media.ohos_ic_public_cut') },
allowClose: false
},
{
prefixIcon: { src: $r('sys.media.ohos_ic_public_copy') },
label: { text: "操作块2" },
allowClose: true
},
{
prefixIcon: { src: $r('sys.media.ohos_ic_public_clock') },
label: { text: "操作块3" },
allowClose: true
},
{
prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_stream') },
label: { text: "操作块4" },
allowClose: true
},
{
prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_mirror') },
label: { text: "操作块5" },
allowClose: true
},
{
prefixIcon: { src: $r('sys.media.ohos_ic_public_cast_stream') },
label: { text: "操作块6" },
allowClose: true
},
],
itemStyle: {
size: ChipSize.NORMAL,
backgroundColor: $r('sys.color.ohos_id_color_button_normal'),
fontColor: $r('sys.color.ohos_id_color_text_primary'),
selectedBackgroundColor: $r('sys.color.ohos_id_color_emphasize'),
selectedFontColor: $r('sys.color.ohos_id_color_text_primary_contrary'),
},
selectedIndexes: this.selected_index,
multiple: true,
chipGroupSpace: { itemSpace: 8, endSpace: 0 },
chipGroupPadding: { top: 10, bottom: 10 },
onChange: (activatedChipsIndex: Array<number>) => {
console.log('chips on clicked, activated index ' + activatedChipsIndex)
},
suffix: this.ChipGroupSuffix
})
}
}
}
示例效果
核心内容
suffix 属性允许你在 ChipGroup 的右侧添加自定义内容,通常用于放置辅助功能按钮。
suffix: 是一个函数类型属性,接受一个无参数、无返回值的构建器方法。
this.ChipGroupSuffix: 是你定义的一个带有 @LocalBuilder 装饰器的方法,它内部使用了 IconGroupSuffix 组件来构建一个图标按钮。
更多推荐
所有评论(0)