2015-12-12 23 views
5

Problem Spinner Dropdown-Liste Start aus dem ersten Zeile des Spinners ist, aber es sollte von unten Linie SpinnerSpinner Drop-Down von oben dem Spinner starten

Normalzustand

enter image description here

Nach einem Klick

starten sein

enter image description here

Spinner xml Code

<Spinner 
    android:id="@+id/spnSelectLanguage" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="8dp" 
    android:layout_marginTop="16dp" 
    android:spinnerMode="dropdown" 
    android:background="@drawable/spn_lang_dropdown_selector" 
    android:gravity="center_vertical" 
    android:popupBackground="#EAEAEA" 
    android:textColor="#54a4db" /> 

-Code

Spinner spnSelectLanguage = (Spinner)rootView.findViewById(R.id.spnSelectLanguage); 
    ArrayAdapter<String> adapterLanguage= new ArrayAdapter<String> (context,R.layout.layout_lng_spinner_item,new String[]{"English","Arabic"}); 
    adapterLanguage.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spnSelectLanguage.setAdapter(adapterLanguage); 

Style.xml

<style name="SpinnerStyle" parent="android:style/Widget.ListView.DropDown"> 
    <item name="android:divider">@color/grey</item> 
    <item name="android:dividerHeight">1dp</item> 
</style> 
+0

es ist nichts anderes als 'ziehbar selector'. Sie können alles als Hintergrund setzen. –

Antwort

6

In Ihrem Spinner:

android:overlapAnchor="false" 
+0

keine solche Eigenschaft zeigt für mich !! – r4jiv007

+0

Diese Eigenschaft funktioniert nur für Api 21 und höher –

6

Sie können diese Zeilen in Ihrer Spinner XML-Code setzen:

android:spinnerMode="dropdown" 
android:dropDownVerticalOffset="50dp" 

Damit wird Ihre dropdownview mit Top-Offset beginnen. Sie können die Korrekturnummer oder berechnen sie zur Laufzeit codieren und zu verwenden:

setDropDownVerticalOffset(int pixels) 

Mehr in: Android Spinner

Verwandte Themen