Search code examples
androidmaterial-designseekbarmaterial-components-androidandroid-slider

How to show tick marks for Discrete Slider?


enter image description here

I'm trying to style a seekbar/slider like the one labeled Discrete Slider - Click (that has the little tick mark indicators) in the Material Design Guidelines. I can't figure out the magical incantation to have the tickmarks show up, does anyone know how to do this?

I have a seekbar with 5 positions (0-4)

<SeekBar
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:max="4" />

Solution

  • Add tick marks with the style attribute:

    <SeekBar
        android:id="@+id/seekBar"
        style="@style/Widget.AppCompat.SeekBar.Discrete"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="10"
        />
    

    Or add them manually by setting the tickMark drawable:

    <SeekBar
        android:id="@+id/seekBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="10"
        android:tickMark="@drawable/tickmark"
        />
    

    tickmark.xml

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
           android:shape="oval">
        <size android:width="4dp"
              android:height="4dp"/>
        <solid android:color="@android:color/white"/>
    </shape>