Home

Awesome

This project is archived and is no longer maintained.

Nice Spinner Android Arsenal

NiceSpinner is a re-implementation of the default Android's spinner, with a nice arrow animation and a different way to display its content.

It follows the material design guidelines, and it is compatible starting from Api 14.

alt tag

Usage

The usage is pretty straightforward. Add the tag into the XML layout:

 <org.angmarch.views.NiceSpinner
   android:id="@+id/nice_spinner"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_margin="16dp"/>

Then use this snippet to populate it with contents:

 NiceSpinner niceSpinner = (NiceSpinner) findViewById(R.id.nice_spinner);
 List<String> dataset = new LinkedList<>(Arrays.asList("One", "Two", "Three", "Four", "Five"));
 niceSpinner.attachDataSource(dataset);

Listeners

For listening to the item selection actions, you can just use the following snippet:

spinner.setOnSpinnerItemSelectedListener(new OnSpinnerItemSelectedListener() {
    @Override
    public void onItemSelected(NiceSpinner parent, View view, int position, long id) {
        // This example uses String, but your type can be any
        String item = parent.getItemAtPosition(position);
        ...
    }
});

Attributes

You can add attributes to customize the view. Available attributes:

nametypeinfo
arrowTintcolorsets the color on the drop-down arrow
hideArrowbooleanset whether show or hide the drop-down arrow
arrowDrawablereferenceset the drawable of the drop-down arrow
textTintcolorset the text color
dropDownListPaddingBottomdimensionset the bottom padding of the drop-down list
backgroundSelectorintegerset the background selector for the drop-down list rows
popupTextAlignmentenumset the horizontal alignment of the default popup text
entriesreferenceset the data source from an array of strings

How to include

With gradle: edit your build.gradle:

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

dependencies {
    implementation 'com.github.arcadefire:nice-spinner:1.4.4'
}

Or declare it into your pom.xml:

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.github.arcadefire</groupId>
    <artifactId>nice-spinner</artifactId>
    <version>1.4.4</version>
</dependency>

License

Copyright (C) 2015 Angelo Marchesin.

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.