Как добавить разделитель в выпадающий список (счетчик)? - PullRequest
0 голосов
/ 29 марта 2019

до нажатия

после нажатия - я хотел бы добавить такую ​​синюю линию

Я хотел бы добавить делитель к моей каплеdown list.

Я использовал решения, которые я нашел в stackoverflow, но они не работали.

Это мой xml-код для фрагмента xml

<Spinner
     android:id="@+id/spinner1"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:spinnerMode="dialog"
     android:background="@drawable/spinner">

</Spinner>

Это spinner.xml.Определяет границы, форму и изображение («кнопка»)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <layer-list>

            <item>
                <shape android:shape="rectangle">
                    <padding
                        android:left="0dp"
                        android:top="0dp"
                        android:right="0dp"
                        android:bottom="1.5dp"
                        />

                    <gradient android:startColor="@color/white" android:endColor="@color/white" android:angle="270" />
                    <stroke android:width="2px" android:color="@color/colorPrimary2" />
                    <corners android:radius="0dp" />
                </shape>
            </item>

                <item android:gravity="center|right" android:drawable="@drawable/ic_spinner_drop_down"/>



        </layer-list>
    </item>
</selector>

1 Ответ

0 голосов
/ 29 марта 2019

Это работает только для spinnerMode = "dropdown" ... для диалогового режима делитель должен быть добавлен во время выполнения через адаптер (в указанном образце также используется раскрывающийся список, но после его реализациии изменив режим на диалог, разделитель по-прежнему отображается).

Просто попробуйте добавить это в файл styles.xml в каталоге ресурсов values:

    <style name="SpinnerStyle" parent="Widget.AppCompat.ListView.DropDown">
        <item name="android:divider">#0000ff</item>
        <item name="android:dividerHeight">0.5dp</item>
    </style>

    <style name="SpinnerTheme" parent="AppTheme">
        <item name="android:dropDownListViewStyle">@style/SpinnerStyle</item>
    </style>

И затем, вы можете добавить дополнительный дочерний узел к тегу style, который уже есть в этом файле (который будет применять стиль ко всем счетчикам):

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- ... -->
        <!-- ... -->
        <!-- ... -->
        <!-- ... some existing lines -->

        <!-- ... new line to add:-->
        <item name="android:dropDownListViewStyle">@style/SpinnerStyle</item>
    </style>

Или ... вы можетепросто добавьте этот стиль к определенному тэгу Spinner в своем фрагменте XML (который будет применять стиль только к этому спиннеру):

    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:spinnerMode="dropdown"
        android:background="@drawable/spinner"
        android:theme="@style/SpinnerTheme">
    </Spinner>
...