Me las arreglé para cambiar el texto de la ruleta y el color de fondo usando el siguiente código.

Archivo de diseño spinner_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="300dp"
    android:layout_height="wrap_content"
    android:padding="5dp"
    android:textColor="@color/colorBlack"
    android:textSize="18sp"
    android:background="@color/colorWhite"
    android:fontFamily="@font/raleway"/>

Archivo kt llamando a lo anterior

ArrayAdapter(requireContext(), R.layout.spinner_layout, companyList)

Lo anterior crea un fondo negro con texto blanco cuando la rueda giratoria está abierta pero al cerrar, mi texto es negro sobre negro como mi fondo de diseño también es negro. ¿Cómo cambio el texto de estado cerrado de la ruleta a blanco?

0
Sebastien Desemberg 2 dic. 2019 a las 14:04

2 respuestas

La mejor respuesta

Puede tener un diseño diferente al abrir y al cerrar usando esto.

 adapter.setDropDownViewResource(R.layout.your_layout_resource_xml)

Por supuesto, antes de que tenga que crear un adaptador personalizado, pero supongo que ya lo hizo.

Para tener el mejor resultado sobre el fondo, se necesitan más cambios:

¿Cómo puedo cambiar el color de fondo de la ruleta?

Básicamente, se crea un diseño personalizado para la ruleta y los elementos de la ruleta con dos diseños diferentes

  <style name="AppTheme.spinnerStyle" 
    parent="@android:style/Widget.Material.Light.Spinner"> 

     <item name="android:textColor">@android:color/white</item>
     <item name="android:background">@color/colorPrimary</item>

  </style> 
  <style name="AppTheme.spinnerDropDownItemStyle" 
    parent="@android:style/Widget.Material.DropDownItem.Spinner">

    <item name="android:textColor">@android:color/white</item> 
    <item name="android:background">@color/colorPrimary</item>
  </style>
1
Dak28 2 dic. 2019 a las 11:48

Haz tu ruleta como esta

 <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="25dp"
                android:layout_marginTop="10dp"
                android:layout_marginRight="20dp"
                android:background="@color/black"
                android:minHeight="45dp"
                android:padding="3dp">

                <Spinner
                    android:id="@+id/girth"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_centerInParent="true"
                     />
            </RelativeLayout>


Y su diseño de vista de elemento giratorio como este

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="5dp"
    android:textColor="@color/white"
    android:textSize="18sp"
    android:fontFamily="@font/raleway"/>


Y en su onItemeSelectedListener cambie el color de texto seleccionado de esta manera

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
    ((TextView)view).setTextColor(Color.WHITE);
}

@Override
public void onNothingSelected(AdapterView<?> parentView) {
    // your code here
}

});

0
Sandeep dhiman 2 dic. 2019 a las 11:58