Quiero agregar una altura personalizada al menú desplegable de un Spinner, digamos 30dp, y quiero ocultar los divisores de la lista desplegable de Spinner.
Hasta ahora intenté implementar el siguiente estilo para Spinner:
<style name="spinner_style">
        <item name="android:paddingLeft">0dp</item>
        <item name="android:dropDownWidth">533dp</item>
        <item name="android:showDividers">none</item>
        <item name="android:dividerHeight">0dp</item>
        <item name="android:popupBackground">@drawable/new_bg</item>
        <item name="android:dropDownHeight">70dp</item>
        <item name="android:scrollbarAlwaysDrawVerticalTrack">true</item>
        <item name="android:dropDownSelector">@android:color/white</item>
 </style>
y el código de mi ruleta es:
<Spinner
            android:id="@+id/pioedittxt5"
            android:layout_width="543dp"
            android:layout_height="63dp"
            android:layout_toRightOf="@+id/piotxt5"
            android:background="@drawable/spinner"
            style="@style/spinner_style"
            android:dropDownVerticalOffset="-53dp"
            android:spinnerMode="dropdown"
            android:drawSelectorOnTop="true"
            android:entries="@array/travelreasons"
            android:prompt="@string/prompt" />
Pero nada parece estar funcionando.

Respuestas:
Cree un adaptador personalizado con un diseño personalizado para su ruleta.
R.layout.simple_spinner_item
R.layout.simple_spinner_dropdown_item
En los estilos, agregue sus dimensiones y altura personalizadas según sus necesidades.
fuente
<item name="android:height">a<item name="android:layout_height">android:id="@+android:id/text1"en el archivo simple_spinner_dropdown_item.xml?Puede crear un diseño giratorio totalmente personalizado como
Paso 1: en la carpeta dibujable, crea background.xml para un borde de la ruleta.
Paso 2: para el diseño del diseño de la ruleta, use este icono desplegable o cualquier imagen drop.png
Finalmente se ve como la imagen de abajo y se puede hacer clic en todas partes en el área redonda y no es necesario escribir, haga clic en Lister para imageView.
Paso 3: para el diseño desplegable, elimine la línea de la vista de lista desplegable y cambie el color de fondo, cree un adaptador personalizado como
En la carpeta de diseño, cree R.layout.spinner_text.xml
En la carpeta de diseño, cree simple_spinner_dropdown.xml
En los estilos, puede agregar dimensiones y altura personalizadas según sus necesidades.
Finalmente se ve como
De acuerdo con el requisito, puede cambiar el color de fondo y el texto del color desplegable cambiando el color de fondo o el color de texto de simple_spinner_dropdown.xml
fuente
La solución más elegante y flexible que he encontrado hasta ahora está aquí: http://android-er.blogspot.sg/2010/12/custom-arrayadapter-for-spinner-with.html
Básicamente, siga estos pasos:
Cree una clase de vista personalizada para su adaptador desplegable. En esta clase personalizada, debe sobrescribir y establecer su diseño de elemento desplegable personalizado en el método getView () y getDropdownView (). Mi código es el siguiente:
En su actividad o fragmento, utilice el adaptador personalizado para su vista giratoria. Algo como esto:
donde opciones es la lista de cadenas de elementos desplegables.
fuente
Prueba esto
Estaba enfrentando muchos problemas cuando estaba probando otra solución ...... Después de mucha I + D ahora obtuve la solución
cree custom_spinner.xml en la carpeta de diseño y pegue este código
en tu actividad
crear una nueva clase de adaptador
fuente
Esto funcionó para mí:
y en mi carpeta de diseño creé
simple_spinner_item:fuente
He creado un pequeño proyecto de demostración sobre esto, podría echarle un vistazo Enlace al proyecto
fuente