android - mit - Eliminando el margen del menú desplegable del hilandero
que es app inventor 2 (5)
Tengo una rueda giratoria como la imagen de abajo;
¿Cómo puedo eliminar la brecha en la x izquierda entre el girador y su menú desplegable? Preferiblemente una solución que funciona en API8 ya que trato de mantener los requisitos de mi aplicación lo más bajos posible.
Asumí 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 una ventana emergente en código: si esto es necesario, ¿puedo acceder de alguna manera a la vista emergente de adaptadores? (Esa es la lista que muestra). Tratar de recrear todo el comportamiento de los adaptadores desde cero parece una manera terrible de hacerlo, pero si puedo llegar a esa vista y deshabilitar el comportamiento de ventana emergente normal, entonces podría crear mi propia ventana emergente sin el molesto desplazamiento.
¿Es lo que quieres algo como esto?
Si es así, aquí está el código (funciona hasta el nivel de API 9):
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>
Intenta esto, esto debería funcionar
<style name="DropDownStyle">
<item name="android:layout_width">0dp</item>
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 olvides revisar la clase básica de Spinner en el código fuente de Android, quizás haya algún truco.
No estoy seguro pero agrega esto a DropDownStyle
<item name="android:padding">0dp</item>
o ¿Puedes compartir la captura de pantalla de la jerarquía ui
Parece que necesita ampliar la vista del Spinner para crear su propio AlertDialog que muestra la lista de elementos, o en la versión más reciente (API 16+) que puede usar
android:dropDownHorizontalOffset="-8dp"
verifique los detalles completos aquí: ¿Cómo cambiar la posición del girador abierto?