티스토리 뷰

반응형

Spinner

리스트에서 하나의 값을 선택해야해서 스피너 구조를 사용하려했다.

아래의 사진과 같이 도르륵 움직이는 아이폰 스타일의 스피너를 예상했다. 

https://stackoverflow.com/questions/33163828/ios-like-spinner

 

 

안드로이드에서 Spinner 

안드로이드에서의 스피너는 드롭다운 형태로 생긴 이런 구조를 말한다.

https://developer.android.com/guide/topics/ui/controls/spinner?hl=ko

 

 

xml에 Spinner을 넣어주고

    <Spinner
        android:id="@+id/birth_spinner_userinfo"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="@+id/textView26"
        app:layout_constraintEnd_toEndOf="@+id/radioGroup"
        app:layout_constraintStart_toStartOf="@+id/radioGroup"
        app:layout_constraintTop_toTopOf="@+id/textView26" />

 

코드에서는 이렇게 짜줬다.

        val agelist = Array(100, {i -> i+1900})

        birth_spinner_userinfo.adapter = ArrayAdapter(requireContext(), android.R.layout.simple_spinner_dropdown_item, agelist)

        birth_spinner_userinfo.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
            override fun onNothingSelected(p0: AdapterView<*>?) {
                println("선택해주세요")
            }

            override fun onItemSelected(p0: AdapterView<*>?, p1: View?, position: Int, p3: Long) {
                println("${position+1900}")
            }

        }

이 스피너로 태어난 해를 고르게 할 목적이기 때문에 agelist는 1900~2000으로 채워줬다.

(숫자는 numberPicker을 사용하는게 아무래도 더 편한것같다는 생각을..)

 

 

 

에뮬레이터가 작아서 화면에 튀어나오게 보이지만 실제 휴대폰으로 테스트해봤을때 이상하지 않은 모양으로 나왔다. 

 

 

 

 

NumberPicker 구현하기

물론 안드로이드에서도 위의 아이폰 스타일의 스피너를 구현할 수 있다. NumberPicker을 커스텀해서 사용하면 된다.

사용 방법은 전에 작성한 포스팅에 정리해놨다.

 

yuuj.tistory.com/51

 

[Android][Kotlin] NumberPicker로 custom datePickerDialog 만들기

안드로이드 기본 datePicker를 사용하려다가 1. 디자인이 마음에 들지 않는다 2. 연/월 만 필요하다 라는 이유로 numberPicker을 활용해 커스텀 datePicker을 만들었다. 안드로이드 기본 datePickerDialog 소스..

yuuj.tistory.com

 

+ bottom sheet 추가하기

 

 

 

 

 

 

 

참고한 포스팅

developer.android.com/guide/topics/ui/controls/spinner?hl=ko

 

스피너  |  Android 개발자  |  Android Developers

스피너는 값 집합에서 하나의 값을 선택할 수 있는 빠른 방법을 제공합니다. 기본 상태의 스피너는 현재 선택된 값을 표시합니다. 스피너를 터치하면 기타 모든 사용 가능한 값을 포함하는 드롭

developer.android.com

 

bite-sized-learning.tistory.com/214

 

[2020 안드로이드 스튜디오] 스피너 (spinner) 사용 예제

[ 2020 안드로이드 스튜디오 ] 스피너 (spinner) 사용 예제 Android Studio Version 3.6.3 사용언어 JAVA 스피너를 사용하면 선택하기 전 View1과 선택하는 중 View2가 있습니다. 하지만 SDK에서 미리 만..

bite-sized-learning.tistory.com

 

반응형