Come si specifica per uno spinner in Android un riempimento extra in alto/in basso del primo/ultimo elemento? Vedi il campione di Goolge sotto (8 dp spaziatura). Imbottitura superiore/inferiore per Spinner
risposta
Spinner non supporta più tipi di visualizzazione. Issue.
Ti ho suggerito di utilizzare la finestra di dialogo per mostrare la tua lista.
cura
in base al tuo commento risolto il problema con questo question
L'unica soluzione sembra essere questa. L'ho trovato seguendo il tuo link.http://stackoverflow.com/a/16400899/519790 – multiholle
È necessario creare un adattatore personalizzato per voi Spinner
utilizzando il layout personalizzato. Pertanto, è sufficiente fornire un layout con il margine/paddins corretto.
Spinner spinner = (Spinner) findViewById(R.id.myspinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.data, R.layout.spinner_item); adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); spinner.setAdapter(adapter);
Si può trovare un valido esempio here.
Basta creare un layout separato per gli elementi che si desidera visualizzare nella casella.
Qualcosa di simile
spinner_text_view.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/customTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="15dp"
android:text="@string/sample_list_item"
android:textColor="@android:color/black"
android:textSize="20sp" />
Poi nella vostra attività/frammento, è possibile creare un adattatore (un adattatore array per essere semplice in questo caso) e passare questo layout che adattatore di riferimento. Infine, imposta l'adattatore allo spinner e ottieni il risultato desiderato.
Codice di esempio.
private void setupSpinner() {
String[] sampleSpinnerItems = {"One", "Two", "Three", "Four", "Five"};
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this,
R.layout.spinner_text_view, sampleSpinnerItems);
sampleSpinner.setAdapter(spinnerAdapter);
}
Spero che questo aiuti.
Nota: spinner_text_view è il file di layout creato in precedenza.
Questo non mi dà un riempimento extra prima del prima e dopo l'ultimo elemento. – multiholle
È necessario un adattatore personalizzato per questo e layout personalizzati. È possibile utilizzare 2 layout. Supponendo che tu abbia n elementi da mostrare, nella tua selezione avrai n + 2. iF la posizione è 0 (il primo elemento) o l'ultimo elemento che mostrerai il layout vuoto altrimenti mostrerai l'altro layout. Il layout vuoto che verrà utilizzato per la creazione di questo spazio
È possibile eseguire questa operazione utilizzando personalizzati Adapter
per Spinner
. Si sarà simile a questa:
class YourAdapter extends BaseArrayAdapter<YourObject> {
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflater.inflate(R.layout.your_item, parent, false);
DropDownViewHolder holder = new DropDownViewHolder();
holder.root = convertView.findViewById(R.id.drop_down_root);
// other assignments etc.
convertView.setTag(holder);
}
DropDownViewHolder holder = (DropDownViewHolder) convertView.getTag();
int bottomPadding = 0;
int topPadding = 0;
if (position == 0) {
topPadding = getContext().getResources().getDimensionPixelSize(R.dimen.margin_8);
} else if (position == (getCount() - 1)) {
bottomPadding = getContext().getResources().getDimensionPixelSize(R.dimen.margin_8);
}
holder.root.setPadding(0, topPadding, 0, bottomPadding);
// other UI related logic etc.
return convertView;
}
// ...
public static class DropDownViewHolder {
View root;
// other views
}
}
logica In realtà con l'impostazione chilo in più può essere modificata per cambiare un po 'di visibilità della vista stub per VISIBLE
o gonfiare qualche altra disposizione a seconda della posizione, ma la soluzione con imbottitura sembra più naturale per me.
- 1. Spinner imbottitura interna è più grande su Android 6.0.1
- 2. Imbottitura struttura
- 3. imposta onClickListener per l'elemento spinner?
- 4. Spinner per Twitter Bootstrap .btn
- 5. Rimuovi spaziatura o riempimento in spinner Android
- 6. l'aggiunta di imbottitura per svg g elemento
- 7. intero formattazione, imbottitura per una data lunghezza
- 8. linguaggio per le sequenze di imbottitura
- 9. Spinner: come ridurre la dimensione dello spinner
- 10. UITableViewCell ImageView imbottitura
- 11. UITabBar selectionIndicatorImage imbottitura
- 12. jquery aggiungere larghezza + imbottitura;
- 13. ProgressBar e progressBarStyleHorizontal imbottitura
- 14. imbottitura dei dati tabulari
- 15. imbottitura in bootstrap
- 16. fitsSystemWindows rimuove imbottitura
- 17. Android CardView rimuovere imbottitura
- 18. separatore imbottitura, ignorandola
- 19. Android - configurare Spinner per usare array di
- 20. Come aggiungere l'immagine per Spinner Android
- 21. Spinner tema predefinito per EditText Android
- 22. Cross-Browser numerico Spinner/Stepper per Bootstrap
- 23. Imbottitura l'immagine spia ActionBar "up"
- 24. MPAndroidChart impostazione grafico imbottitura/compensato
- 25. BackgroundColorSpan con imbottitura verticale aggiuntiva
- 26. zeri imbottitura in una stringa
- 27. jqGrid: come cambiare imbottitura cella
- 28. trascinamento imbottitura in struttura interna
- 29. Rimozione Image Button Imbottitura (Android)
- 30. verticale imbottitura di immagini responsive
Prova questi collegamenti [1 ° link] (http://stackoverflow.com/questions/17407626/custom-layout-for-spinner-item) [2 ° link] (http://stackoverflow.com/questions/8946893/ androide-custom-spinner-layout) [Programma di esempio] (http://mrbool.com/how-to-customize-spinner-in-android/28286) Spero che questa guida sia completa –