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.
- Spinner en la barra de acción con sólo el icono pero no la opción seleccionada
- Rellene dinámicamente el Spinner en android desde el texto de edición
- Android: ¿Dónde está escondido el atributo de color del texto del widget Spinner?
- Android.database.sqlite.SQLiteCursor@435b9ba0
- Añade más espacio entre los elementos de Android Spinner sin estilo personalizado?
- Diferencia entre android.R.layout.simple_spinner_dropdown_item y android.R.layout.simple_spinner_item
- Spinner error gráfico API 21
- Cómo crear editable spinner en android?
- Cómo ver el estilo predeterminado de android simple_spinner_dropdown_item
- Cómo hacer una fecha spinner en Android
- Cómo abrir una ruleta con un solo clic cuando otra ruleta está abierta
- Android spinner muestra referencia de objeto en lugar de cadena
- SetOnItemSelectedListener de Spinner no llama
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,
-
Cree un diseño personalizado (según sea necesario) para la fila de hilandero.
-
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());
- Vinculación de un servicio a un android.app.Activity vs Enlace a un android.app.Application
- permisos de generación de phonegap en android