Android Spinner: centralizar el texto verticalmente dentro de la hiladora
Necesito estos hilanderos para centrar verticalmente el texto. He intentado cosas como esta en la definición de Spinner xml:
- Cómo configurar la flecha desplegable en el hilandero?
- Prueba de centrifugadoras dinámicas espresso
- Botón desplegable de Android
- El primer elemento de Spinner no debe aparecer en la lista desplegable
- setOnItemSelectedListener para spinner en Fragmento
<Spinner android:id="@+id/dir_spn" android:layout_gravity="center_vertical" android:gravity="center_vertical" android:layout_weight="1"/>
Intenté construir un diseño personalizado de desplegable:
<?xml version="1.0" encoding="utf-8"?> <CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" style="@style/SpinnerDropDownItem" android:singleLine="true" android:layout_width="match_parent" android:layout_height="?android:attr/listPreferredItemHeight" android:ellipsize="marquee" />
Styles.xml:
<resources> <style name="SpinnerDropDownItem"> <item name="android:gravity">center_vertical</item> <item name="android:layout_gravity">center_vertical</item> <item name="android:textColor">?android:attr/textColorPrimary</item> <item name="android:textColorHighlight">#FFFF9200</item> <item name="android:textColorHint">?android:attr/textColorHint</item> <item name="android:textColorLink">#5C5CFF</item> <item name="android:textSize">16sp</item> <item name="android:textStyle">normal</item> </style> </resources>
Conjunto desplegable del adaptador:
adapter.setDropDownViewResource(R.layout.spinner_dropdown_item);
¿Cómo consigo que el texto de Spinner se centre verticalmente?
EDIT: vale la pena mencionar que la Actividad está temática en el manifiesto así:
<resources> <style name="SpeakNSpell" parent="@android:style/Theme"> <item name="android:minHeight">68sp</item> </style> </resources>
Que hace todas las vistas por lo menos 68sp alto. ¿Está esto afectando el texto dentro del Spinner también?
- ¿Cómo hago para que el estado "deshabilitado" de un Spinner esté deshabilitado?
- Cómo configurar el elemento Spinner sin que onItemSelected se llame
- Spinner personalizado con esquinas redondeadas, borde acartonado y un icono selector
- Cambios en la posición emergente de Spinner en el Nexus 5 (android 5.0)
- Cómo configurar la fuente de fuente personalizada a Spinner texto de forma programática?
- ¿Qué tipo de objeto Spinner.getItemAtPosition (...) devuelve?
- Problema de estilo al superponer getDropDownView en ArrayAdapter
- Expand / open a spinner al hacer clic en otro elemento / widget?
Volver a escribir
Parece que desea centralizar el texto verticalmente en el recurso de elemento, que se muestra a continuación, pero sus ejemplos de código apunta al menú desplegable …
El Spinner superior es el diseño por defecto simple_spinner_item android y el fondo es el mismo pero tiene android:gravity="center_vertical"
añadido.
<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" style="?android:attr/spinnerItemStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="marquee" android:gravity="center_vertical" android:singleLine="true" />
Puedes ver que usé tu Tema con la minHeight
grande. A continuación se muestra un ejemplo básico para utilizar este diseño en un adaptador:
Spinner spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spinner_item, list); // set whatever dropdown resource you want spinner.setAdapter(adapter);
Fui con la suposición de que desea "CASH", "Seleccionar producto", etc de su imagen centrada, me dejó saber si usted está tratando de hacer algo más!
Si alguien sigue teniendo problemas después de ajustar la gravity
, intente ajustar el relleno del Spinner
:
android:paddingTop="0dp" android:paddingBottom="0dp"
En su SpinnerAdapter
pruebe algo como esto:
public View getDropDownView(int position, View convertView, ViewGroup parent) { View v = super.getDropDownView(position, convertView,parent); ((TextView) v).setGravity(Gravity.CENTER); return v; }
- Xamarin forma error Droid.Resource no contiene una definición de cadena
- Android: ¿una galería vertical?