/AndroidTagGroup

:four_leaf_clover:A beautiful android tag group widget. This repo contains some new features and bug fixes(Especially the issue where the "Enter key" on Google keyboard does not submit new tags). You can see all the changes in the releases page.

Primary LanguageJavaApache License 2.0Apache-2.0

AndroidTagGroup

Release Android Arsenal

The TagGroup is a special layout with a set of tags. You can use it to tag people, books or anything you want.

Demo

Screenshot

screenshot1

Edit Tags

screenshot2 screenshot3

Download Demo

Usage

Step 1

Gradle

  • Add the following to your project level build.gradle:
allprojects {
	repositories {
		maven { url "https://jitpack.io" }
	}
}
  • Add this to your app build.gradle:
dependencies {
	compile 'com.github.kizitonwose:AndroidTagGroup:1.6.0'
}

Maven

  • Add the following to your pom.xml:
<repository>
       	<id>jitpack.io</id>
	    <url>https://jitpack.io</url>
</repository>

<dependency>
	    <groupId>com.github.kizitonwose</groupId>
	    <artifactId>AndroidTagGroup</artifactId>
	    <version>1.6.0</version>
</dependency>

Step 2

Use it in your own code:

<me.gujun.android.taggroup.TagGroup
    android:id="@+id/tag_group"
    style="@style/TagGroup" />
TagGroup mTagGroup = (TagGroup) findViewById(R.id.tag_group);
mTagGroup.setTags(new String[]{"Tag1", "Tag2", "Tag3"});

Use setTags(...) to set the initial tags in the group.

How to submit a new tag?

To "submit" a new tag as user press "Enter" or tap the blank area of the tag group, also you can "submit" a new tag via submitTag().

This issues has been fixed in v1.6.0

Note: Google keyboard (a few soft keyboard not honour the key event) currently not supported "Enter" key to "submit" a new tag.

How to delete a tag?

To delete a tag as user press "Backspace" key or double-tap the tag which you want to delete.

How to detect tag click event?

Implement a callback interface: TagGroup.OnTagClickListener, and set the listener via setOnTagClickListener().

Important changes in v1.6.0

  • void onAppend() in onTagChangedListener is now boolean onAppend() This is useful if you want to check if a new tag is valid before adding to the list of tags. For instance, in a TagGroup of links, you may want to ensure that new tags are valid links, this is the right place do so. If you are not interested in validating your tags, you can just return true.

  • Fixed issue where tag is not submitted with enter key on some keyboards.

Build

run ./gradlew assembleDebug (Mac/Linux)

or

run gradlew.bat assembleDebug (Windows)

Attributes

There are several attributes you can set:

Dimension illustrate

attr default mean
atg_isAppendMode false Determine the TagGroup mode, APPEND or single DISPLAY.
atg_inputHint Add Tag/???? The hint of the INPUT tag.
atg_borderColor #49C120 The tag outline border color.
atg_textColor #49C120 The tag text color.
atg_backgroundColor #FFFFFF The tag background color.
atg_dashBorderColor #AAAAAA The tag dash outline border color.
atg_inputHintColor #80000000 The input tag hint text color.
atg_inputTextColor #DE000000 The input tag type text color..
atg_checkedBorderColor #49C120 The checked tag outline border color.
atg_checkedTextColor #FFFFFF The checked text color.
atg_checkedMarkerColor #FFFFFF The checked marker color.
atg_checkedBackgroundColor #49C120 The checked tag background color.
atg_pressedBackgroundColor #EDEDED The tag background color when the tag is being pressed.
atg_borderStrokeWidth 0.5dp The tag outline border stroke width.
atg_textSize 13sp The tag text size.
atg_horizontalSpacing 8dp The horizontal tag spacing.(Mark1)
atg_verticalSpacing 4dp The vertical tag spacing.(Mark2)
atg_horizontalPadding 12dp The horizontal tag padding.(Mark3)
atg_verticalPadding 3dp The vertical tag padding.(Mark4)

Developed By

Jun Gu - 2dxgujun@gmail.com

Follow me on Weibo Follow me on Google Plus

License

Copyright 2015 Jun Gu

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.