Kongzue StackLabel 是堆疊標籤組件,適合快速完成須要堆疊標籤的場景,例如「搜索歷史」、「猜你喜歡」等功能。android
Demo預覽圖以下:github
Demo下載地址:fir.im/stacklabelexpress
<dependency>
<groupId>com.kongzue.stacklabel</groupId>
<artifactId>stacklabelview</artifactId>
<version>1.1.0</version>
<type>pom</type>
</dependency>
複製代碼
Gradle: 在dependencies{}中添加引用:apache
implementation 'com.kongzue.stacklabel:stacklabelview:1.1.0'
複製代碼
<com.kongzue.stacklabelview.StackLabel xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/stackLabelView"
android:layout_width="match_parent"
android:layout_height="120dp"
app:textColor="#e6000000"
app:itemMargin="4dp"
app:paddingHorizontal="12dp"
app:paddingVertical="8dp"
app:deleteButton="false"
app:textSize="12dp"
/>
複製代碼
其中支持的自定義屬性解釋以下:bash
字段 | 含義 | 類型 |
---|---|---|
app:textColor | 標籤文本顏色 | ColorInt |
app:itemMargin | 標籤外邊距 | int(像素) |
app:paddingHorizontal | 標籤內左右間距 | int(像素) |
app:paddingVertical | 標籤內上下間距 | int(像素) |
app:deleteButton | 默認是否顯示刪除按鈕 | boolean |
app:textSize | 標籤文本字號 | int(像素) |
app:deleteButtonImage | 刪除圖標 | resId(資源id,例如@mipmap/img_delete) |
app:labelBackground | Label背景圖 | resId(資源id,例如@mipmap/img_delete) |
StackLabel 目前僅支持純文本標籤表現,您能夠將要顯示的 String 字符串文本添加爲 List 集合設置給 StackLabel,就會呈現想要的內容,範例以下:app
labels = new ArrayList<>();
labels.add("花哪兒記帳");
labels.add("給將來寫封信");
labels.add("密碼鍵盤");
labels.add("擡手喚醒");
labels.add("Cutisan");
labels.add("記-專一創做");
labels.add("我也不知道我是誰");
labels.add("崩崩崩");
labels.add("Android");
labels.add("開發");
stackLabelView.setLabels(labels);
複製代碼
要實現標籤點擊,則須要設置點擊監聽器:less
stackLabelView.setOnLabelClickListener(new OnLabelClickListener() {
@Override
public void onClick(int index, View v, String s) {
Toast.makeText(MainActivity.this, "點擊了:" + s, Toast.LENGTH_SHORT).show();
}
});
複製代碼
您能夠在代碼中使用 setDeleteButton(boolean) 控制 StackLabel 刪除模式的開關:maven
stackLabelView.setDeleteButton(ture);
複製代碼
當 DeleteButton 開啓時,點擊任何標籤即應刪除該標籤:ide
stackLabelView.setOnLabelClickListener(new OnLabelClickListener() {
@Override
public void onClick(int index, View v, String s) {
if (stackLabelView.isDeleteButton()) {
//刪除並從新設置標籤
labels.remove(index);
stackLabelView.setLabels(labels);
} else {
Toast.makeText(MainActivity.this, "點擊了:" + s, Toast.LENGTH_SHORT).show();
}
}
});
複製代碼
以上,即 StackLabel 的基本使用流程。
Copyright Kongzue StackLabel
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
複製代碼
v1.1.0:
v1.0: