AutoLabelUI事件回调指南:4大监听器一次搞懂标签的点击、删除、已满与清空

AutoLabelUI事件回调指南:4大监听器一次搞懂标签的点击、删除、已满与清空 AutoLabelUI事件回调指南4大监听器一次搞懂标签的点击、删除、已满与清空【免费下载链接】AutoLabelUIAndroid library to place labels next to another. If there is not enough space for the next label, it will be added in a new line.项目地址: https://gitcode.com/gh_mirrors/au/AutoLabelUIAutoLabelUI 是一款轻量级 Android 标签库能把标签Label横向排布、空间不足时自动换行。本文带你一次搞懂它的4 大事件回调监听器标签被点击、标签被删除、标签达到上限、标签全部清空帮你快速实现点选-移除-提醒这类交互逻辑。先认识 AutoLabelUI一行代码搞定标签流在布局 XML 中加入AutoLabelUI控件后通过addLabel(标签文字)即可不断添加标签控件自动完成排布与换行每个标签右上角还可以显示一个×小图标点击即可删除。核心类源码位置library/src/main/java/com/dpizarro/autolabel/library/AutoLabelUI.java单个标签视图实现library/src/main/java/com/dpizarro/autolabel/library/Label.java要让界面响应这些操作AutoLabelUI 提供了4 个监听器接口分别对应 4 类关键时机监听器设置方法触发时机回调参数️ OnLabelClickListenersetOnLabelClickListener用户点击标签本体被点击的 Label️ OnRemoveLabelListenersetOnRemoveLabelListener标签被删除点击 × 图标被删的 Label 位置 position⚠️ OnLabelsCompletedListenersetOnLabelsCompletedListener标签数量已满再添加被拒绝无 OnLabelsEmptyListenersetOnLabelsEmptyListener标签全部清空一个不剩无监听器一标签点击OnLabelClickListener当用户点击标签本身时触发。注意默认标签是不可点击的需要先把label_clickable设为trueXML 属性或withLabelsClickables(true)回调才会生效。mAutoLabel.setOnLabelClickListener(labelClicked - show(你点了 labelClicked.getText()));在Label.java中可以看到只有labelsClickables为 true 时标签背景才会被设置为可点击并注册点击监听。监听器二标签删除OnRemoveLabelListener用户点击标签上的 × 图标后标签会被移除并回调onRemoveLabel(removedLabel, position)。position来自添加标签时传入的位置下标如果你用addLabel(文字)这种不带位置的写法添加回调中的 position 会是-1。适合在这里同步你的数据列表或列表项选中状态。mAutoLabel.setOnRemoveLabelListener((removedLabel, position) - { if (position ! -1) { adapter.setItemSelected(position, false); // 取消列表中对应项的选中 } });监听器三标签已满OnLabelsCompletedListener通过max_labels属性示例布局见app/src/main/res/layout/recyclerview_fragment.xml或setMaxLabels(n)设定上限后每次添加失败都会触发一次onLabelsCompleted()——这是给用户弹 Toast/Snackbar 提示最多只能选 N 个的最佳时机。mAutoLabel.setOnLabelsCompletedListener(() - show(已达上限));小技巧max_labels设为 -1 表示不限制数量此时该回调永远不会触发。监听器四标签清空OnLabelsEmptyListener只要标签数量归零就会触发onLabelsEmpty()。触发来源有三种都能感知到逐个点 × 直到删完调用removeLabel(文字或位置)程序化删除至空调用clear()一键清空。常用于复位界面、恢复默认状态或提示当前未选择任何标签。mAutoLabel.setOnLabelsEmptyListener(() - show(已全部清空));实战参考示例应用如何一次用上 4 个监听器官方示例中的RecyclerViewFragment完整演示了 4 个监听器的注册方式文件路径app/src/main/java/com/dpizarro/libraries/autolabelui/RecyclerViewFragment.java点击列表项 →addLabel(姓名, position)添加标签再次点击 →removeLabel(position)移除标签并由OnRemoveLabelListener同步取消选中态达到 10 个上限 → Snackbar 提示 Completed!全部删完 → Snackbar 提示 EMPTY!点击标签本体 → Snackbar 显示标签文字。这个列表选择 标签流 状态提示的组合正是 AutoLabelUI 最典型的使用场景照着抄即可上手。常见坑位清单点了标签没反应检查label_clickable是否开启library/src/main/res/values/attrs.xml中定义了全部可用属性。position 为 -1说明该标签是以纯文字方式添加的没有绑定位置下标。满了却收不到回调确认max_labels已被显式设置-1 表示无上限。旋转屏幕后标签还在库已内置状态保存/恢复无需额外处理。总结AutoLabelUI 用 4 个简洁的监听器覆盖了标签交互的全部关键时机点击、删除、已满、清空。记住一张表见上文 打开label_clickable你就能用几行代码构建出响应灵敏的标签选择界面。完整用法可继续参考示例工程源码快速跑通你的第一个标签流。【免费下载链接】AutoLabelUIAndroid library to place labels next to another. If there is not enough space for the next label, it will be added in a new line.项目地址: https://gitcode.com/gh_mirrors/au/AutoLabelUI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考