Ciò può essere ottenuto attraverso la creazione di un layout personalizzato per la custom_spinner_item.xml oggetto filatore selezionato. Ho aggiunto un TextView che mostra l'oggetto selezionato attualmente. L'icona della freccia viene aggiunta in un ImageView. Puoi usare qualsiasi icona. L'icona della freccia si sposta in base alla lunghezza del testo che non viene raggiunta dalla risposta di TheoKanning. In effetti puoi modificare completamente l'aspetto del tuo spinner in questo layout.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/spinner_item_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingLeft="10dp"
android:paddingRight="10dp"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@mipmap/ic_arrow_down"/>
</LinearLayout>
Creare un adattatore rotore personalizzato e gonfiare la vista sopra. Inoltre, imposta il testo della tua selezione di spinner dall'elenco sovrascrivendo il metodo predefinito getView().
public class CustomSpinnerAdapter extends ArrayAdapter<String> {
LayoutInflater inflater;
List<String> spinnerItems;
public CustomSpinnerAdapter(Context applicationContext, int resource, List<String> spinnerItems) {
super(applicationContext, resource, spinnerItems);
this.spinnerItems = spinnerItems;
inflater = (LayoutInflater.from(applicationContext));
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
view = inflater.inflate(R.layout.custom_spinner_item, null);
TextView type = (TextView) view.findViewById(R.id.spinner_item_text);
type.setText(spinnerItems.get(i));
return view;
}
}
Quindi creare un'istanza della classe CustomSpinnerAdapter e impostarla come adattatore per lo spinner. spinnerList è l'elenco di elementi da mostrare nello spinner.
CustomSpinnerAdapter customSpinnerAdapter = new CustomSpinnerAdapter(getContext(), android.R.layout.simple_spinner_item, spinnerList);
spinner.setAdapter(customSpinnerAdapter);
fonte
2017-03-04 13:41:20
Dopo due aspetti potrebbero interessare: 1.There è una staffa chiusa (>) dispersi android: src = "@ drawable/ic_spinner". 2. Il file spinner_background.xml deve essere creato nella cartella drawable. – XerXes