Android使用AutoCompleteTextView实现单行展示多个chips/tags效果
纯CSS基于Flex布局即可实现该效果,无需额外JS逻辑,代码如下:
HTML结构
<div class="tags-wrapper"> <span class="tag">标签1</span> <span class="tag">标签2</span> <span class="tag">长度更长的标签3</span> <span class="tag">标签4</span> <span class="tag">中等长度标签5</span> <span class="tag">标签6</span> <span class="tag">很长的用来测试换行的标签7</span> <span class="tag">标签8</span> </div>
CSS样式
/* 标签容器 */ .tags-wrapper { display: flex; flex-wrap: wrap; /* 第一个值是行间距,第二个值是同排标签的水平间距,可按需调整 */ gap: 8px 10px; /* 以下为可选容器样式,按需修改 */ width: 100%; max-width: 500px; padding: 12px; border: 1px solid #eee; border-radius: 6px; } /* 单个标签样式 */ .tag { padding: 4px 12px; line-height: 20px; font-size: 14px; background: #f5f5f5; border: 1px solid #e8e8e8; border-radius: 16px; color: #333; white-space: nowrap; cursor: pointer; transition: all 0.2s ease; } .tag:hover { background: #e8e8e8; border-color: #d9d9d9; }
效果说明
- 容器宽度足够时,单行会自动排布尽可能多的标签,标签间保留固定水平间距
- 总标签宽度超出容器宽度时,超出的标签会自动换行到下一行,行间距保持一致
- 单个标签的文字不会被强制拆分换行,保证标签完整性
- 所有样式参数都可按需调整,匹配设计需求即可。
内容的提问来源于stack exchange,提问作者Himanshu verma
相关产品推荐
相关产品推荐

