shine_joseph
shine_joseph

Reputation: 2942

Android custom spinner went black in 17- devices

I have created a custom spinner in Android. It looks looks like this in 16+ devices and this in 16 or below.

<Spinner
        android:id="@+id/spinner"
        style="@style/spinner_style"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/line1"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp"
         /> 

styles.xml

 <style name="spinner_style" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:background">@drawable/gradient_spinner</item>
    <item name="android:layout_marginLeft">10dp</item>
    <item name="android:layout_marginRight">10dp</item>
    <item name="android:layout_marginBottom">10dp</item>
    <item name="android:paddingLeft">8dp</item>
    <item name="android:paddingTop">5dp</item>
    <item name="android:paddingBottom">5dp</item>
    <item name="android:popupBackground">#DFFFFFFF</item>
</style>

gradient_spinner.xml

<?xml version="1.0" encoding="utf-8"?>

<item>
    <layer-list>
        <item>
            <shape>


                <stroke android:width="1dp" android:color="#000000" />

                <corners android:radius="0dp" />

                <padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
            </shape>
        </item>
        <item>
            <bitmap android:gravity="bottom|right" android:src="@drawable/icon_drop" />
        </item>
    </layer-list>
</item>

I dont understand why it became black??

Upvotes: 1

Views: 449

Answers (2)

Kovalchuk
Kovalchuk

Reputation: 51

In android 16 in shape in the default black color. Replace the black to any other color, for example white. To override the colors you need to add the following:

<shape>
  <solid android:color="@color/white"/>
  ....
</shape>
                  

As a result, in gradient_spinner.xml you will get the following code:

<?xml version="1.0" encoding="utf-8"?>
    <item>
        <layer-list>
            <item>
                <shape>

                    <solid android:color="@color/white"/>
                  
                    <stroke android:width="1dp" android:color="#000000" />

                    <corners android:radius="0dp" />

                    <padding android:bottom="3dp" android:left="3dp" android:right="3dp" android:top="3dp" />
                </shape>
            </item>
            <item>
                <bitmap android:gravity="bottom|right" android:src="@drawable/icon_drop" />
            </item>
        </layer-list>
    </item>

Sorry for my English. Thank you

Upvotes: 3

shine_joseph
shine_joseph

Reputation: 2942

 <solid android:color="#ffffff"/>

added this on gradient_spinner.xml and worked

Upvotes: 1

Related Questions