ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Android ChipGroup 使用说明

Android ChipGroup 使用说明 ChipGroup 使用文档1. 简介ChipGroup是 Material 组件中用于承载多个Chip的容器适合以下场景标签展示不可点击条件筛选单选/多选动态标签列表如识别结果、关键词等在当前项目中ChipGroup用于“识别结果标签列表”的展示并配合 RecyclerView 实现“折叠/展开”效果。2. 依赖要求项目已包含依赖implementation com.google.android.material:material:1.9.03. 基础 XML 用法com.google.android.material.chip.ChipGroupandroid:idid/chip_groupandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentapp:singleLinefalseapp:chipSpacingHorizontal6dpapp:chipSpacingVertical6dp/常用属性app:singleLine是否单行显示false表示自动换行app:chipSpacingHorizontal横向间距app:chipSpacingVertical纵向间距app:singleSelection是否单选模式app:selectionRequired单选时是否要求必须有一个选中项4. 动态添加 Chip展示型适用于识别结果、标签云等动态数据场景。privatefunrenderChips(chipGroup:ChipGroup,tags:ListString){chipGroup.removeAllViews()valshowTagsif(tags.isEmpty())listOf(无)elsetags showTags.forEach{tag-valchipChip(chipGroup.context).apply{text\u2022$tagisClickablefalseisCheckablefalsecloseIconnullchipStartPadding10fchipEndPadding10fsetTextColor(0xFFBFC9EA.toInt())textSize13fsetChipBackgroundColorResource(android.R.color.transparent)setBackgroundResource(R.drawable.bg_tag_chip)}chipGroup.addView(chip)}}注意事项RecyclerView item 复用时必须先调用removeAllViews()避免重复叠加。展示型场景建议设置isClickablefalse、isCheckablefalse。5. 单选/多选筛选用法如果用于筛选功能可开启可选中状态com.google.android.material.chip.ChipGroupandroid:idid/chip_group_filterandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentapp:singleSelectiontrueapp:selectionRequiredtrue/valchipChip(context).apply{idView.generateViewId()text前方isCheckabletrue}chipGroup.addView(chip)chipGroup.setOnCheckedStateChangeListener{_,checkedIds-// checkedIds: 当前选中的 Chip id 列表}6. 折叠/展开场景实现建议当标签数量较多时建议在 Adapter 中控制设置折叠阈值如 3 个折叠态仅显示前 N 个标签超过阈值显示箭头按钮点击箭头切换expanded状态并notifyItemChanged(position)示例逻辑valcanExpanditem.tags.sizecollapsedVisibleCountvalvisibleTagsif(item.expanded||!canExpand){item.tags}else{item.tags.take(collapsedVisibleCount)}renderChips(binding.chipGroup,visibleTags)7. 性能建议避免在高频回调中无条件重建全部 Chip。先比较新旧数据只有变化时再刷新 item。可结合节流throttle降低 UI 更新频率。极大数据量时可考虑将标签改为文本聚合展示降低 View 数量。
返回列表