2009-12-16 12 views
11

Ich habe eine Drop-Down-XML-Datei benutzerdefinierte Spinner in/res/layout /:Android Spinner - Wie Drop-Down-Ansicht transparent machen?

spinner_view_dropdown.xml: 

<?xml version="1.0" encoding="UTF-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/spinner_item_dropdown" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="@android:color/transparent" 
style="@style/spinner_item_dropdown" /> 

ich den Spinner Drop-Down über Java-Einstellung:

// "Spinner", aka breadcrumbs 
    Spinner spin = (Spinner) findViewById(R.id.breadcrumb_dropdown); 

    ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.breadcrumb, R.layout.spinner_view); 

    adapter.setDropDownViewResource(R.layout.spinner_view_dropdown); 

    spin.setAdapter(adapter); 
    // /"Spinner" 

Leider, ein weißer Hintergrund auf dem noch existiert Spinner-Popup unabhängig davon, ob ich den Hintergrund auf transparent setze.

Wie behebe ich das?

+0

Sie den Hintergrund transparent festgelegt hat, aber das Textview wird in einem Dialog gehalten und der Dialog eine Hintergrundfarbe hat. – Blundell

Antwort

29

Sie den Stil für den Drop-Down außer Kraft setzen kann, und das Drop-down-Element durch ein Thema in Ihrer Anwendung verwenden, die von einem der Android Themen erben, dann außer Kraft setzen, die

android:dropDownSpinnerStyle oder android:spinnerDropDownItemStyle und sogar das android:dropDownListViewStyle Attribut des Themas und zeigt auf Ihren eigenen benutzerdefinierten Stil anstelle des Android-Stils, der in ihrem Thema definiert ist. Ich habe einen vollständig angepassten Spinner auf diese Weise erstellt, mit einem transparenten Button UND einem DropDown. Ich habe sogar die Dropdown-Listen-Teiler losgeworden und meinen eigenen Abstand für die Dropdown-Elemente festgelegt, als ich die Tablet-App für Fandango erstellte (seht euch den Sortier-Spinner auf der Hauptseite der App an).

Alles in Android ist anpassbar, Sie müssen nur wissen, wo Sie suchen.;-)

+3

Können Sie ein Beispiel geben, wie Sie das tun, was Sie vorgeschlagen haben? – Junaid

+0

@Junaid Ich denke, Sie wären besser dran mit dem Studium der Dokumente: http://developer.android.com/guide/topics/ui/themes.html –

+3

Maaaaaaan! Dank dafür. Aber kleines Beispiel wird immer noch nützlich sein :) –

1

Das Layout, das Sie definieren, wird nur für einen Eintrag Ihres Dropdown-Menüs verwendet, nicht das Dropdown-Menü selbst. Wenn Sie also den Hintergrund auf transparent setzen, hat das keinen Einfluss auf den Hintergrund. Aber selbst wenn dies der Fall wäre, hätte das Setzen des Hintergrunds auf Transparenz immer noch keinen Effekt, weil ein TextView (eigentlich ich glaube irgendein View) einen transparenten Hintergrund standardmäßig hat.

Das Gesagte, die richtige Frage wäre: Können Sie ein benutzerdefiniertes Layout für die Elternansicht eines Eintrags (das ist wahrscheinlich eine Liste)? Soweit ich weiß, ist die Antwort leider nein.

+0

Vielen Dank für Ihre Antwort. Was verwirrend ist, ist, dass Adobe Photoshop Mobile ein Dropdown-System zu verwenden scheint, das an seine Icons gebunden ist, die zum Bearbeiten eines Bildes verwendet werden. Dies ist der Effekt, den ich versuche zu duplizieren, und ich nahm an, dass er einen Spinner verwendet hat. Hier ist ein Film zeigt diesen Effekt in der Anwendung: http://blogs.adobe.com/rjacquez/2009/11/adobe_debuts_photoshopcom_mobi.html – iamkoa

+1

vielleicht verwenden sie ein benutzerdefiniertes PopupWindow? http://developer.android.com/reference/android/widget/PopupWindow.html – Matthias

0

Es ist ein Fehler in 1.5 Ich denke, siehe hier

http://www.symsource.com/index.php?view=article&id=418&option=com_content&format=pdf

Run es in einem 1,6-Emulator oder Gerät, ist es immer noch weiß bleiben?

Ich bin tatsächlich hierher gekommen, um nach einem Ansatz dafür zu suchen, ich vermute, dass das manuelle Schreiben auf die Leinwand oder so etwas beinhalten kann.

Irgendwelche Ideen.

P.S. Versehentlich gepostet als ich dachte, ich wäre eingeloggt, weiß jemand, wie man den anonymen Kommentar loswerden kann? Vielleicht könnte ein Administrator das beheben?

26

Try-Einstellung auf dem Spinner dieses:

android:popupBackground="@android:color/transparent" 
+1

Danke Mann! Ich habe dies für eine benutzerdefinierte Farbe verwendet: Android: popupBackground = "# 0f0f0f" funktioniert perfekt – Jakob