Diseño personalizado para el elemento Spinner
Tengo un spinner dentro del diálogo de alerta. Quería reducir el relleno entre los elementos de giro y por lo tanto implementé lo siguiente:
spinner_row.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="30dp"
android:background="#fff" >
<TextView
android:id="@+id/tvCust"
android:layout_width="200dp"
android:layout_height="30dp"
android:gravity="left|center_vertical"
android:textColor="#000"
android:textSize="15sp" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_alignParentRight="true" />
</RelativeLayout>
El código de actividad contiene lo siguiente:
spinner= (Spinner) dialog.findViewById(R.id.spinner);
String arr[] = { "1", "2", "3" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
CameraActivity.this, R.layout.spinner_row, R.id.tvCust,arr);
spinner.setAdapter(adapter);
Ahora, como se puede ver en la siguiente captura de pantalla, el botón de radio se muestra en la ruleta, que es en realidad una parte despinner_row.xml
. Tenga en cuenta que el ancho de la vista de texto es 200dp, mientras que la flecha giratoria solo tiene 130dp de largo, por lo que el botón de opción no debería haberse mostrado en la rueda giratoria. ¿Como puedo quitarlo?
Además, cuando hago clic en cualquiera de los elementos de giro, la ventana emergente de giro no desaparece como se esperaba (tenga en cuenta que las 3 casillas de verificación están marcadas en la lista de elementos de giro).setOnItemSelectedListener
no se llama en el elemento de clic.
Cualquier ayuda apreciada.
Editar 1SegúnfarrukhComo sugerencia, probé su código y el siguiente es el resultado.