SpannedAutoCompleteView
is a subclass of MultiAutoCompleteTextView
.
The auto-complete text is converted into a image span.
Sample code is also available in this repository.
- minSdkVersion: 11
Android-SpannedAutoCompleteView library is pushed to Maven Central as a AAR, so you just need to declare the following dependency to your build.gradle
.
dependencies {
compile 'com.github.lamydev:android-spannedautocompleteview:1.0'
}
The image span is constructed by a stack of SpannAutoCompleteView#SpanLayer
.
The span background resides at the bottom of the span layer stack.
public void setSpanBackground(int resId);
public void setSpanBackground(Drawable drawable);
To create a new span layer:
public SpanLayer createSpanLayer();
To destroy a span layer:
public void destroySpanLayer(SpanLayer layer);
To set a Drawable
to a span layer:
public SpanLayer setDrawable(int resId);
public SpanLayer setDrawable(Drawable drawable);
To set gravity of a span layer (default is CENTER):
____________________________
| |
| Top |
| -------------- |
| | | |
| Left | Center | Right |
| | | |
| -------------- |
| Bottom |
|____________________________|
public SpanLayer setGravity(int gravity);
To set margins of a span layer:
public SpanLayer setMargin(int l, int t, int r, int b);
To remove a span associated with the dropdownItem:
public void removeSpan(Object dropdownItem);
To remove a span automatically when the associated dropdownItem gets clicked:
public void setAutoRemove(boolean auto);
By default, the tokenizer is automatically set up during view construction.
You don't need to consider about it. However, if you do, please remember that:
The parameter Tokenizer
passed to setTokenizer
MUST be an instance of SpannedAutoCompleteView#DefaultTokenizer
.
Otherwise, exception IllegalArgumentException
will be thrown.
By default, the separator is a white space ' '
.
public void setSeparator(char separator);
public void setSeparator(CharSequence separator);
By setting a callback, you can monitor any events occurred on a span.
public void setCallback(Callback cb);
Called when the user clicks on a dropdownItem to complete the text:
void onSpanCreate(SpannedAutoCompleteView view, Object dropdownItem);
Called when a span is added:
void onSpanAdded(SpannedAutoCompleteView view, Object dropdownItem);
Called when a span is removed:
void onSpanRemoved(SpannedAutoCompleteView view, Object dropdownItem);
Called when the user clicks on a span:
void onSpanClick(SpannedAutoCompleteView view, Object dropdownItem);
- Zemin Liu ([email protected])
Any questions, contributions, bug fixes, and patches are welcomed. ^_^
Copyright (C) 2015 Zemin Liu
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.