Android limit the no of items displayed in a spinner's dropdown list
I was looking at the Spinner
source code and it seems like you can't do that with a spinner.
The Spinner
has its own private interface called SpinnerPopup
which defines how dropdown items can be shown. This is currently based on the spinnerMode
allowing for a dropdown or dialog list.
Both options are also implemented inside the Spinner
class as private classes: DialogPopup
and DropdownPopup
. Since you can't access them, it seems to me your only options at this point are:
- Implement your own custom spinner based on other widgets such as in this example.
-
Copy the code from the
Spinner
class which seems pretty self-contained and implement your version of a spinner with it, modifying whatever you like in it.
I'm sorry I couldn't be of more help.
Good luck!
EDIT:
If you choose option 2, I think all you need to do is add your mode implementing the SpinnerPopup
interface. Then inside the constructor Spinner(Context context, AttributeSet attrs, int defStyle, int mode)
add another case
to the switch
checking for the modes to instantiate your own popup. Doesn't seem hard.
This answer doesn't work anymore, please look elsewhere.
Here's the ultimately simple solution.. just copy this line in Spinner tag...
android:dropDownHeight="100dp" <!--change 100dp to your requirement-->
you can also modify width...
android:dropDownWidth="100dp" <!--change 100dp to your requirement-->
and you know what it works on
AutoCompleteTextView
too and with atleast api 16...