web-dev-qa-db-ja.com

スピナーのドロップダウンはスピナーの上から始まります

問題は、Spinnerドロップダウンリストがスピナーの一番上の行から始まることですが、Spinnerの一番下の行から始める必要があります

通常の状態

enter image description here

クリック後

enter image description here

スピナー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" />

コード

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>
11
Kishore Jethava

スピナーの場合:

Android:overlapAnchor="false"

[〜#〜] note [〜#〜] 21未満のAPIをサポートしている場合、この属性はAPI> = 21で使用できるため、コピーして貼り付ける必要があります。

14
iamreptar

Spinnerxmlコードで次の行を設定できます。

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

これにより、ドロップダウンビューはトップオフセットから始まります。オフセット番号をハードコーディングするか、実行時に計算して使用できます。

setDropDownVerticalOffset(int pixels)

詳細: Android Spinner

13
AliMola

私にとっては、スピナースタイルを作成し、テーマのスタイルに「Android:spinnerStyle」アイテムを追加したときにのみ機能しました。

/res/values/styles.xmlを開き、テーマ( "AppTheme")を見つけて、次のように<item name="Android:spinnerStyle">@style/custom_spinner</item>を追加しました。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>            
    <item name="Android:spinnerStyle">@style/custom_spinner</item>
</style>

<style name="custom_spinner" parent="@Android:style/Widget.Holo.Light.Spinner">
</style>
0
Zhebzhik Babich