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