[Android]StackLabel - 一個很簡單的堆疊標籤

Kongzue StackLabel

Kongzue StackLabel 是堆疊標籤組件,適合快速完成須要堆疊標籤的場景,例如「搜索歷史」、「猜你喜歡」等功能。android

Github

github.com/kongzue/Sta…git

Kongzue StackLabel Maven License Homepage

Demo預覽圖以下:github

StackLabel

Demo下載地址:fir.im/stacklabelexpress

優點

  • 輕鬆易使用,快速建立,知足絕大多數堆疊標籤使用場景。

使用方法

  1. 從 Maven 倉庫或 jCenter 引入: Maven倉庫:
<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'
複製代碼
  1. 從XML佈局文件建立:
<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)
  1. 添加內容:

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:

  • 新增屬性 deleteButtonImage 和 labelBackground 設置屬性;

v1.0:

  • 全新發布;
相關文章
相關標籤/搜索