Android limitará el número de elementos mostrados en la lista desplegable de un hilandero
Tengo un elemento giratorio vinculado a un adaptador de matriz que puede tener 0 o más elementos en cualquier momento. Quiero que la lista desplegable del hilandero muestre solamente tres artículos a la vez, el resto de los artículos que son desplazables. He intentado envolver el hilandero dentro de un diseño con un ancho fijo, pero la lista desplegable hilandero sigue ocupando toda la pantalla (si hay muchos elementos en el adaptador de matriz) para mostrar la lista.
- Spinner de Selección Múltiple
- ¿Cómo actualizar dinámicamente un spinner?
- ¿Cómo puede comprobar el estado de los dos spinner?
- Spinner onItemSelected llamado erróneamente (sin acción del usuario)
- Populating Spinner con Enum que tiene recursos de cadena
- ¿Cómo coloco el hilandero debajo del diseño del hilandero cuando se hace clic y muestra el elemento del hilandero en piruleta y arriba?
- ¿Cómo establecer el valor predeterminado en el menú desplegable de hilandero en Android?
- Cómo cambiar el tamaño del texto del elemento Android Spinner
- Cómo puedo cambiar el 'pequeño triángulo' en la barra de acción NAVIGATION_MODE_LIST
- Spinner no envuelve texto - ¿esto es un error de Android?
- Obtener la posición de un spinner en Android
- Cómo establecer la selección de hilandero por el texto dentro de él
- Cambiar el color de fondo de la flecha giratoria
Estaba mirando el código fuente de Spinner
y parece que no se puede hacer eso con un spinner.
El Spinner
tiene su propia interfaz privada llamada SpinnerPopup
que define cómo se pueden mostrar los elementos desplegables. Esto se basa actualmente en el spinnerMode
permite una lista desplegable o de diálogo.
Ambas opciones también se implementan dentro de la clase Spinner
como clases privadas: DialogPopup
y DialogPopup
. Puesto que no puedes acceder a ellos, me parece que tus únicas opciones en este momento son:
- Implementa tu propia ruleta personalizada basada en otros widgets como en este ejemplo .
- Copia el código de la clase
Spinner
que parece bastante autónomo e implementa tu versión de un spinner con ella, modificando lo que quieras en ella.
Lo siento, no podría ser de más ayuda.
¡Buena suerte!
EDITAR:
Si eliges la opción 2, creo que todo lo que necesitas hacer es añadir tu modo implementando la interfaz de SpinnerPopup
. A continuación, dentro del constructor Spinner(Context context, AttributeSet attrs, int defStyle, int mode)
añadir otro case
a la comprobación de switch
para los modos de instanciar su propio popup. No parece difícil.
Aquí está la solución en última instancia simple .. sólo copie esta línea en la etiqueta Spinner …
android:dropDownHeight="100dp" <!--change 100dp to your requirement-->
También puede modificar el ancho …
android:dropDownWidth="100dp" <!--change 100dp to your requirement-->
Y usted sabe lo que funciona en AutoCompleteTextView
también y con atleast api 16 …
La forma de abordar esto será utilizar una función, y pasar el adaptador de matriz a la misma. Hacer una matriz que sólo puede contener 3 elementos sólo arr[3]
Ahora pasa ese arr al spinner que estás usando (locale). Allí usted puede conseguir los tres datos de los hilanderos que usted necesita.
- ¿Cómo aplastar fragmentos en el backstack que coinciden con su etiqueta de fragmento?
- Prueba de la unidad para Android: Cómo burlar el contexto de Android