2015-01-18 17 views
13

È possibile ottenere lo stile equivalente di Widget.Material.Spinner.Underlined utilizzando le librerie AppCompat per i dispositivi pre v21?Esiste un equivalente AppCompat di Widget.Material.Spinner.Underlined?

Voglio supportare v16 + nella mia app, ma vorrei davvero ottenere l'effetto di sottolineatura su Spinners usando le librerie AppCompat se possibile.

+0

hai funzionato? – Jared

+0

Sto affrontando lo stesso problema. Sembra che se devo supportare la mia app in Android 16+, allora dovrò accontentarmi di uno spinner senza una sottolineatura. – Abhi

risposta

22

UPDATE (11 marzo 2015): AppCompat revisione 22 ha introdotto uno stile Spinner che include la sottolineatura: "Base.Widget.AppCompat.Spinner.Underlined" (http://developer.android.com/tools/support-library/index.html#revisions)

RISPOSTA VECCHIO: AppCompat non ha un equivalente, dovrai calcolare aggiungere la sottolineatura te stesso.

C'è un problema a questo proposito, che è stato contrassegnato come corretto in una "versione futura". Da allora ci sono state diverse versioni di AppCompat, ma ancora nessun segno di uno stile di sottolineatura.

https://code.google.com/p/android/issues/detail?id=77819

19

Per chi ha bisogno del codice per ottenere questo lavoro. Basta assicurarsi che si sta utilizzando rev22 della biblioteca AppCompat v7 e poi mettere il seguente nel file style.xml:

<item name="MySpinnerStyle">@style/Widget.AppCompat.Spinner.Underlined</item> 

Assicuratevi anche di cambiare MySpinnerStyle essere il nome del vostro stile si imposta il filatore a. Qui è dove ho ottenuto la mia risposta (il merito va a jkane001!)
code.android.com: Appcompat: missing Spinner.Underline style

+0

hey @meandnotyou, potresti voler dare un'occhiata a questa risposta se hai problemi a farlo funzionare, credo che potresti aver bisogno di questa riga di codice :-) – Jared

+0

Come possiamo cambiare il colore della freccia e questa sottolineatura come per colore accento primario e colore? 'colorControlHighlight' funziona correttamente, ma voglio uno stato di default! – Skynet

+1

Trovato: ' @ color/myControlColor' Sexy è solo una parola! – Skynet

-1

utilizzare uno stile per il filatore, ad esempio questo:

style = "@ Android: Stile/Widget.Holo.Light .Spinner "

2
<item name="android:spinnerStyle">@style/Widget.AppCompat.Spinner.Underlined</item> 
<item name="colorControlHighlight">@color/your_color</item> 

Dopo aver aggiunto la seconda riga, ho sottolineato anche il mio dispositivo kitkat.