2014-11-01 13 views
27

Ciao Sto facendo un'applicazione demo in cui sto usando EditText in cui una riga appare in basso che è ok ma non è nel caso di spinner.Come aggiungere una riga nella parte inferiore della casella di selezione come edittext in Android

Come è possibile fare?

layout.xml

<EditText 
    android:id="@+id/twitterEditText" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="15dp" 
    android:hint="@string/twitter_account" 
    android:inputType="textWebEmailAddress" /> 


<Spinner 
    android:id="@+id/countrySpinner" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="15dp" 
    android:hint="@string/country" /> 

<Spinner 
    android:id="@+id/stateSpinner" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="15dp" 
    android:hint="@string/state" /> 

<Spinner 
    android:id="@+id/citySpinner" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="15dp" 
    android:hint="@string/city" /> 

enter image description here

+0

si desidera qualcosa per visualizzare l'utente del scelta dopo aver scelto qualcosa nella lista degli Stati Uniti e così via? Si prega di essere più chiaro ... – TomerZ

+0

@TomerZ voglio che ci dovrebbe essere la linea nera come la stessa vista (telefono, telefono, email) –

+0

@TomerZ quella linea dovrebbe essere lì non sempre dopo l'utente raccogliere qualcosa da uno spinner –

risposta

2

Quella linea è ciò che si scrive il vostro input sopra. Una trottola non ha quella linea perché non è un campo di immissione del testo. Se si vuole avere una linea sotto il filatore troppo, è possibile inserire al di sotto simulando in questo modo:

<Spinner 
    android:id="@+id/firstSpinner" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="15dp" 
    android:hint="@string/firstHint" /> 

<!-- Separator view --> 

<View 
    android:layout_width="match_parent" 
    android:layout_height="1dp" 
    android:background="@android:color/black"/> 

<Spinner 
    android:id="@+id/secondSpinner" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="15dp" 
    android:hint="@string/secondHint" /> 

<!-- Insert separator view again--> 

probabilmente bisogno di giocare con i margini un po '. Si noti inoltre che la linea nera è solo in Android 5.0 e l'intero layout apparirà molto diverso negli androidi precedenti. Se vuoi solo avere una linea nera su Android 5.0, devi fare una copia del layout e inserirla in una directory chiamata layout-v21 e avere l'altra versione nella directory predefinita layout.

+0

Non voglio seguire questo approccio. Voglio farlo tramite lo stile e nove immagini patch. –

80

ho appena affrontato lo stesso problema e dopo una ricerca per un po 'la risposta è abbastanza semplice:

<Spinner 
     ...    
     style="@style/Widget.AppCompat.Spinner.Underlined" 
     ... /> 
+1

style = "@ style/Widget.AppCompat.Spinner.Underlined" non è definito. – lostintranslation

+0

Come cambiare il colore della linea? – rohitsakala

+0

Per cambiare il colore, devi modificare il tuo stile, ad esempio: anthony

19
<android.support.v7.widget.AppCompatSpinner 
     ...    
     style="@style/Widget.AppCompat.Spinner.Underlined" 
     app:backgroundTint="YOUR_COLOR_HERE" 
     ... /> 
2

Dal momento che nessuno ha pubblicato in risposta reale, qui ya go:

<item android:bottom="1dp" 
    android:left="-2dp" 
    android:right="-2dp" 
    android:top="-2dp"> 
    <shape android:shape="rectangle" > 
     <stroke 
      android:width="0.5dp" 
      android:color="@android:color/black" /> 
    </shape> 
</item> 

1

Il suo lavoro

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <item name="android:spinnerStyle">@style/holoSpinner</item> 
</style> 

<style name="holoSpinner" parent="Widget.AppCompat.Spinner.Underlined"> 
     <item name="android:textSize">16sp</item> 
     <item name="android:textColor">#3F51B5</item> 
</style> 

Felice Coding

0

Se @style/Widget.AppCompat.Spinner.Underlined non trovato o non funziona utilizzato al di sotto style a Spinner fondo ha sottolineato

   <Spinner 
        android:id="@+id/spinner" 
        android:layout_width="wrap_content" 
        style="@android:style/Widget.Material.Spinner.Underlined" 
        android:layout_height="wrap_content" 
        /> 
Problemi correlati