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 1

SegúnfarrukhComo sugerencia, probé su código y el siguiente es el resultado.

Respuestas a la pregunta(1)

Su respuesta a la pregunta