헤이딜러에서 범위형 필터를 설정할 때는
범위에 대한 구간이 일정하지 않고 점점 커지게끔 구성되어 있습니다.
위 UI의 요구사항은 아래와 같습니다.
요구사항
- 범위를 드래그 할 수 있는 버튼은 구간이 2개 이상이여도 최대 2개로 한다.
- 드래그 하면 일정한 간격에서 멈추지 않고 전체 범위를 기준으로 실제 값에 비례한 곳에서 멈추어야 한다.
1번은 값을 두개만 넣어두고 value를 format 하는 방법으로 어느정도 해결이 가능합니다.
그런데 2번 요구사항은 머티리얼 컴포넌트를 비롯해 모든 라이브러리를 둘러보았지만 항상 일정한 간격으로 구현이 되어 있었습니다.
그래서 간격을 유연하게 설정할 수 있는 컴포넌트를 직접 만들었습니다. 😃
사용 방법은 머티리얼 컴포넌트의 RangeSlider와 유사합니다
XML
<kr.co.prnd.slider.FlexibleStepRangeSlider
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:valueFrom="float"
android:valueTo="float"
app:thumbColorActive="color"
app:thumbColorInactive="color"
app:thumbElevationActive="dimension"
app:thumbElevationInactive="dimension"
app:thumbRadiusActive="dimension"
app:thumbRadiusInactive="dimension"
app:thumbStrokeColorActive="color"
app:thumbStrokeColorInactive="color"
app:thumbStrokeWidthActive="dimension"
app:thumbStrokeWidthInactive="dimension"
app:tickColorActive="color"
app:tickColorInactive="color"
app:tickVisible="boolean"
app:trackColorActive="color"
app:trackColorInactive="color"
app:trackHeight="dimension"
app:values="floatArray" />
thumb
track
tick
세 가지 속성과 active
inactive
만 있으면 됩니다.
Functions
보다 자세한 사용 방법은 라이브러리의 샘플 프로젝트로 확인 해 보세요!
이 라이브러리에 대한 개선사항이나 궁금한 점이 있으시다면 댓글이나 Github에 이슈로 남겨주시면 답변 드리도록 하겠습니다.
감사합니다.