https://github.com/lcodecorex/labellayout
A light but strong tags-selecter Android library. 标签(label/tag)展示/选择控件,使用简单,个性化方便。
https://github.com/lcodecorex/labellayout
Last synced: 11 months ago
JSON representation
A light but strong tags-selecter Android library. 标签(label/tag)展示/选择控件,使用简单,个性化方便。
- Host: GitHub
- URL: https://github.com/lcodecorex/labellayout
- Owner: lcodecorex
- Created: 2017-03-25T06:55:35.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2018-04-22T07:37:17.000Z (about 8 years ago)
- Last Synced: 2025-07-12T12:44:22.777Z (12 months ago)
- Language: Java
- Size: 889 KB
- Stars: 48
- Watchers: 4
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## 最简洁的标签(label/tag)选择/展示控件----LabelLayout
LabelLayout只是用于标签布局(layout),搭配CheckBox使用,标签样式可以随意更换,完全没有束缚,小而精悍。(支持API 9 及以上)
### Demo图
  
### 属性
- label_horizontalSpacing 水平方向上标签之间的距离
- label_verticalSpacing 竖直方向上标签之间的距离
- label_checkboxLayout 传入CheckBox布局(也就是标签的样式)
- label_enableDivider 是否需要在标签行间加分割线,默认为**false**
- label_dividerHeight 行间分割线的高度
- label_dividerColor 行间分割线的颜色
### 使用
#### 添加gradle依赖
```
compile 'com.lcodecorex:labellayout:1.0.1'
```
#### 方法及回调
1. 定义标签数据Bean实现ILabel接口
```java
public interface ILabel {
//warning! Ids should be unique!!!
public String getId();
public String getName();
}
```
注意getId()放回的id值必须是独特的,不可重复。
2. layout布局
```xml
```
2. 设置标签,使用setLabels()方法
```java
labelLayout.setLabels(List labels);
```
3. 添加标签选择监听器
```java
label_me.setOnCheckChangedListener(new LabelLayout.OnCheckListener() {
@Override
public void onCheckChanged(ILabel label,boolean isChecked) {}
@Override
public void onBeyondMaxCheckCount() {
}
});
```
4. 如果是需要选择标签,可以调用setMaxCheckCount(int)方法,选中的标签超过这个数checkListener的onBeyondMaxCheckCount()方法会被回调。
6. 其它方法
- getCheckedLabelsCount 获取当前被选中的标签数量
- getCheckedLabelIds() 获取被选中的标签的id列表
- getCheckedIdsAsJson() 获取json序列化之后的id的json串
#### 个性化(可参考默认样式:view_label_common.xml)
--- 主布局
```xml
```
--- checkbox_gray.xml
```xml
```
--- 图一中用的CheckBox样式
```xml
```
> ps
> Contact me:lcodecore@163.com