Eliminar espaciado o relleno en android Spinner

Estoy utilizando android spinner y edittext de soporte lib v21. Me gustaría alinear el texto a la izquierda como edittext como se muestra en la figura. Sin embargo, el spinner deafult incluye espaciamiento o relleno. Por lo tanto, me gustaría quitar para alinear el texto a la izquierda. Por favor, ayude a quitarlo.

Introduzca aquí la descripción de la imagen

En su SpinnerAdapter:

@Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); view.setPadding(0, view.getPaddingTop(), view.getPaddingRight(), view.getPaddingBottom()); return view; } 

Intente abajo el código para hacer tan. Cambie el atributo de estilo en su diseño de elemento de lista de hilatura a textViewStyle como a continuación

 <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/text1" style="?android:attr/textViewStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="false" android:textAlignment="inherit" android:textAppearance="?android:attr/textAppearanceMedium" /> 

También puede eliminar el relleno de spinner en xml

Sólo es necesario establecer el relleno a 0dp.

  <Spinner android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="left" android:padding="0dp" android:id="@+id/my_spinner"> 

Si está utilizando un adaptador personalizado, pruebe a configurar el relleno en getView() :

 @Override public View getView(int position, View convertView, ViewGroup parent) { View view = super.getView(position, convertView, parent); view.setPadding(0, view.getPaddingTop(), view.getPaddingRight(), view.getPaddingBottom()); return view; } 

Prueba esto,

  1. Cree un diseño personalizado (según sea necesario) para la fila de hilandero.

  2. infle el diseño cuando se establece el adaptador de datos en la hiladora.

El diseño de TextView que se muestra en su Spinner proviene de su SpinnerAdapter , que proporciona 2 métodos:

  • getView(position, convertView, parent) : devuelve Ver para el estado colapsado, puede anularlo para devolver diferentes diseños para el elemento seleccionado diferente
  • getDropdownView(position, convertView, parent) : return Ver para cada elemento desplegable en estado expandido (después de hacer clic en Spinner para abrir popup / dialog para la selección)

En su caso debe reemplazar su SpinnerAdapter.getView(position, convertView, parent) e inflar el diseño con relleno / espaciado de su elección.

Por ejemplo:

 spinner.setAdapter(new MyAdapter()); 

MyAdapter.java

 class MyAdapter implements SpinnerAdapter { @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.spinner_item, parent, false); } // bind your data here return convertView; } // other implementation } 

res / layout / spinner_item.xml

 <!-- set padding margin whatever here --> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" /> 

También puede utilizar cómodamente una de las subclases indirectas SpinnerAdapter ( ArrayAdapter<T>, BaseAdapter, CursorAdapter, ResourceCursorAdapter, SimpleAdapter, SimpleCursorAdapter, ThemedSpinnerAdapter ), sólo asegúrese de proporcionar el diseño correcto que sería utilizado por el método getView() .

Puede personalizar su propio parche Spinner via Nine y especificar el relleno

Si yo no quiere meterse en código de Java y lo tienen en estilos

Busque este archivo (Cmd + Shift + O) abc_spinner_textfield_background_material.xml

y copiar a su proyecto. Elimine todos los valores de inserción del elemento raíz y consulte el archivo como fondo de su hiladora.

En mi caso se parece a esto ( drawable/spinner_background.xml )

 <inset xmlns:android="http://schemas.android.com/apk/res/android"> <selector> <item android:state_checked="false" android:state_pressed="false"> <layer-list> <item android:drawable="@drawable/abc_textfield_default_mtrl_alpha" /> <item android:drawable="@drawable/abc_spinner_mtrl_am_alpha" /> </layer-list> </item> <item> <layer-list> <item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha" /> <item android:drawable="@drawable/abc_spinner_mtrl_am_alpha" /> </layer-list> </item> </selector> </inset> 

y en mi styles.xml lo uso de esta manera

 <style name="DxSpinner" parent="@style/Widget.AppCompat.Spinner.Underlined"> <item name="android:background">@drawable/spinner_background</item> </style> 

Este trabajo para mi

 Spinner spn = (Spinner) findViewById(R.id.spn); spn.setPadding(0, spn.getPaddingTop(), spn.getPaddingRight(), spn.getPaddingBottom()); 
  • Tema predeterminado de Spinner a EditarTexto android
  • Spinner con par clave-valor
  • Android onListItemClick no funciona cuando los hilanderos se encuentran dentro de listrow
  • ¿Cómo insertar elementos adicionales en un SimpleCursorAdapter o Cursor para un Spinner?
  • Establecer el elemento seleccionado de la hiladora mediante programación
  • Android Spinner OnItemSelected no se llama con el mismo elemento
  • Mueva la flecha giratoria hacia la izquierda cerca del texto
  • Cómo usar spinner
  • ¿Cómo obtener el valor de Spinner?
  • Android Spinner - ¿Cómo eliminar los botones de radio?
  • AppCompatSpinner vs android.widget.Spinner para la aplicación con min SDK versión 14
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.