Eliminación del margen de la lista desplegable de hilanderos

Tengo una ruleta como la imagen de abajo;

Introduzca aquí la descripción de la imagen

¿Cómo puedo eliminar la brecha a la izquierda x entre el hilandero y su lista desplegable – preferiblemente una solución que funciona en API8 como estoy tratando de mantener los requisitos de mi aplicación lo más bajo posible.

Había asumido que esto sería layout_margin en el estilo de los hilanderos, pero después de leer esta pregunta parece que eso no es posible.

En mi tema tengo;

<style name="AppTheme" parent="AppBaseTheme"> <item name="android:dropDownListViewStyle">@style/DropDownStyle</item> <item name="android:dropDownSelector">@style/DropDownStyle</item> </style> <style name="DropDownTopStyle"> <item name="android:clickable">true</item> <item name="android:background">@drawable/dropdowntop</item> </style> <style name="DropDownStyle"> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">fill_parent</item> <item name="android:layout_marginLeft">0dp</item> <item name="android:layout_margin">0dp</item> <item name="android:clickable">true</item> <item name="android:background">@drawable/dropdownback</item> <item name="android:popupBackground">@drawable/dropdownback</item> <item name="android:cacheColorHint">#FFF000</item> </style> 

Gracias, Thomas

Adicional; Puedo ver que podría haber una manera de hacer un pop-up yo mismo en el código – si es necesario, ¿puedo de alguna manera llegar a la vista emergente de adaptadores? (Que es la lista que muestra). Intentar recrear el comportamiento entero de los adaptadores a partir de cero parece una manera terrible de ir – pero si puedo conseguir a esa visión e inhabilitar el comportamiento normal del estallar, entonces podría hacer mi propio estallido sin el desplazamiento molesto.

Parece que necesitas ampliar la Spinner View para crear tu propio AlertDialog que muestre la lista de elementos, o en la versión más reciente (API 16+) que puedes usar

android:dropDownHorizontalOffset="-8dp"

Compruebe los detalles completos aquí: ¿Cómo cambiar la posición del hilandero abierto?

¿Es lo que quieres algo como esto?

Introduzca aquí la descripción de la imagen

Si es así, aquí está el código (funciona hasta el nivel 9 de la API):

Actividad:

 public class MainActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Spinner spinnerListOptions = (Spinner) findViewById(R.id.spinner); ArrayAdapter<CharSequence> adapterListOptions = ArrayAdapter.createFromResource(this, R.array.string_array, R.layout.spinner_item_top); adapterListOptions.setDropDownViewResource(R.layout.spinner_item_dropdown); spinnerListOptions.setAdapter(adapterListOptions); } } 

Spinner_item_top.xml:

 <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="29dp" android:textSize="12sp" android:gravity="center"> </TextView> 

Spinner_item_dropdown.xml:

 <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="29dp" android:textSize="12sp" android:gravity="center"> </TextView> 

Activity_main.xml:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true"/> </RelativeLayout> 

Strings.xml:

 <resources> <string-array name="string_array"> <item>item 1</item> <item>item 2</item> <item>item 3</item> </string-array> </resources> 

Prueba esto, esto debería funcionar

  <style name="DropDownStyle"> <item name="android:layout_width">0dp</item> 

Im no sure pero agrega esto a DropDownStyle

  <item name="android:padding">0dp</item> 

O ¿Puede compartir ui hierarchy captura de pantalla

No t know it is possible, because all view item like Spinner, EditText, etc... are small images in the android SDK. You should check, is there any default padding in the 9patched SDK image, if yes, I think you can t know it is possible, because all view item like Spinner, EditText, etc... are small images in the android SDK. You should check, is there any default padding in the 9patched SDK image, if yes, I think you can hacerlo. Además, no se olvide de comprobar la clase base Spinner en Android sourcode, tal vez hay algún truco.

  • Cambio de la flecha del hilador, Appcompat v21
  • ¿Cómo podemos crear hilanderos similares a iPhone en android?
  • Android: se centra en EditText después de la selección de Spinner
  • Android: setSelection no tiene ningún efecto en Spinner
  • Crear un hilandero por programación android
  • ¿Cómo obtener el valor de Spinner?
  • spinner dropdown inicio de la parte superior de la ruleta
  • Cómo ver el estilo predeterminado de android simple_spinner_dropdown_item
  • Rellenando Spinner con SimpleAdapter en Android
  • ¿Cómo insertar elementos adicionales en un SimpleCursorAdapter o Cursor para un Spinner?
  • Cómo agregar una pista en spinner en XML
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.