2015-12-12 12 views
5

Problem jest Spinner rozwijana lista początek od górnej linii Spinner ale należy zacząć od dolnej linii Spinnerspinner rozwijana zacząć od górnej części pokrętła

stanu normalnego

enter image description here

Po kliknięciu

enter image description here

Spinner kodu xml

<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" /> 

Kod

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

to nic ale 'rozciągliwej selector'. możesz umieścić wszystko jako tło. –

Odpowiedz

6

W swojej turbinki:

android:overlapAnchor="false" 
+0

żadna taka właściwość nie jest dla mnie wyświetlana !! – r4jiv007

+0

Ta właściwość działa tylko dla Api 21 i nowszych –

6

Można ustawić to linie w Spinner kodu xml:

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

Dzięki temu Twój dropdownview rozpocznie z góry offsetowego. Można hardcode numer korekcji lub obliczyć w czasie rzeczywistym i używać:

setDropDownVerticalOffset(int pixels) 

Więcej w: Android Spinner

Powiązane problemy