Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Spinner functionality not working on Android 6.0.1

I am using Spinner for displaying some values. And the strange issue is that

The dropdown is displaying correctly, but when I select any item from dropdown, is not displayed in the box.

And the strange thing is this functionality is working on all Android Operating Systems before 6.0.1(i.e. 6.0.0 and previous). I have also tried AppCompatSpinner and the result is same.

main.xml:

<Spinner
    android:id="@+id/spinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="0.3"
    android:entries="@array/values" />

Main.java:

Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setSelection(5); // Not displaying 5th item, Yes! there are more than 5 items.
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        spinner.setSelection(position);
    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {
        spinner.setSelection(5);
    }
});
like image 405
activesince93 Avatar asked Dec 16 '15 14:12

activesince93


1 Answers

It's weird that I am answering my own question. But after doing lots of research finally I found a solution.

Solution:

There is nothing wrong in the code that I previously wrote. It's just issue of inner padding in Android OS 6.0.1

In the release of Android OS 6.0.1 they made some changes in inner padding of a Spinner.

After reading this related question on SO I adjusted my Spinner width and made it visible in all the Android OS versions.

like image 104
activesince93 Avatar answered Oct 18 '22 11:10

activesince93