2017-10-07 2 views
0

Ich versuche, den Hintergrund eines Spinner gesetzt programmatisch als würde der folgenden XML-Code auf null:Einstellung Hintergrund Spinner auf null programmatisch

<Spinner 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:id="@+id/spinner1" 
    android:background="@null" 
/> 

Ich habe versucht, entweder von:

spinner1.setBackground(null); 

spinner1.setBackgroundDrawable(null); 

spinner1.setBackgroundResource(0); 

Aber Keine dieser drei gibt die gleiche Ausgabe wie die XML. Über xml verschwindet die gesamte Pfeilregion inklusive Padding, während via Code nur das Pfeilzeichen verschwindet, aber die gesamte Länge der Pfeilregion bleibt erhalten.

Irgendwelche Hinweise?

Antwort

0

Setzen Sie es stattdessen auf Transparent. Machen Sie einen Stil für den Spinner, oder setzen Sie einfach den Hintergrund = "# 00000000"

oder wenn Sie es in Code tun möchten, könnten Sie einen Style-Swap verwenden oder einfach einen Zeichensatz deklarieren.

Drawable transparentDrawable = new ColorDrawable(Color.TRANSPARENT); 
mySpinner.setBackground(transparentDrawable); 

Hinweis * sicherstellen, dass Sie die richtige setBackground für die richtigen OS verwenden, wie es aus setBackgroundDrawable nach Lollipop veraltete und zog ich glaube, es war.

+0

Ich muss es programmgesteuert tun. Ich glaube, dass Stile und Hintergrund = "# ..." nur aus XML funktionieren. – judorange

+0

aktualisiert, um im Code zu zeichnen, wenn das Ihre Präferenz ist – Sam

+0

funktioniert auch nicht. Auf der rechten Seite des Drop-down-Menüs ist noch Platz. Die XML-Lösung entfernt diesen Rohling vollständig. – judorange

Verwandte Themen