Search code examples
androidspinnervisual-glitch

Spinner graphical bug API 21


I have one spinner in a fragment that have a very annoying graphical glitch. This occurs only on my Nexus 5 with API 21. enter image description here

I have try to set spinner.setLayerType(View.LAYER_TYPE_SOFTWARE, null) but the glitch is still present. Any ideas?


Solution

  • I managed to work around this bug in two different ways:

    1. Set a style to your spinner:

      <Spinner
          android:background="@drawable/background"
          android:id="@+id/spinner"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          style="@android:style/Widget.Holo.Light.Spinner"/>
      

    maybe the background color in the predefined styles is enough for you. If not try

    1. Create a shape drawable with a corner radius:

      <?xml version="1.0" encoding="utf-8"?>
      <shape xmlns:android="http://schemas.android.com/apk/res/android"
          android:shape="rectangle">
          <corners android:radius="2dp" />
          <solid android:color="#00ff00" />
      </shape>
      

    and set it as a popupBackground to your spinner

        <Spinner
            android:background="@drawable/spinner_background"
            android:id="@+id/date_spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="false"
            android:popupBackground="@drawable/spinner_popup_background"/>
    

    hope this is helpful!