개요
레이팅바(RatingBar)는 사용자가 별점을 줄 수 있는 UI 요소로, 주로 앱 평가나 리뷰에서 자주 사용됩니다.
별점의 범위는 개발자가 설정할 수 있으며, RatingBar
는 사용자 입력에 따라 별점을 표시하고 값을 처리할 수 있습니다.
예제 코드
package com.example.ratingbarexample
import android.os.Bundle
import android.widget.RatingBar
import androidx.appcompat.app.AppCompatActivity
import com.example.ratingbarexample.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// View Binding 초기화
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
// RatingBar의 값이 변경될 때마다 호출되는 리스너 설정
binding.ratingBar.setOnRatingBarChangeListener { ratingBar, rating, fromUser ->
if (fromUser) {
binding.ratingTextView.text = "현재 별점: $rating"
}
}
// 버튼을 눌렀을 때 현재 별점 출력
binding.submitButton.setOnClickListener {
val rating = binding.ratingBar.rating
binding.ratingTextView.text = "제출한 별점: $rating"
}
}
}
설명
- RatingBar에 리스너 설정
ratingBar
: 현재 별점을 가진RatingBar
객체입니다.rating
: 사용자가 설정한 별점 값입니다.fromUser
: 사용자가 직접 별점을 조정한 경우true
, 코드나 시스템에 의해 변경된 경우false
입니다. 사용자에 의해 변경된 경우에만 별점을 표시하기 위해fromUser
조건을 사용합니다.
추가적인 속성
numStars
:- 별의 총 개수를 설정합니다. 기본 값은 5입니다.
- 예:
android:numStars="5"
stepSize
:- 별점의 증가 단위를 설정할 수 있습니다. 예를 들어, 0.5씩 또는 1씩 증가하도록 할 수 있습니다.
- 예:
android:stepSize="0.5"
rating
:- 현재
RatingBar
의 초기 별점을 설정할 수 있습니다. - 예:
android:rating="3.5"
- 현재
isIndicator
:- 이 속성을
true
로 설정하면RatingBar
가 사용자의 입력을 받지 않고, 별점이 고정된 상태로 표시됩니다. 주로 평가를 보여줄 때 사용됩니다. - 예:
android:isIndicator="true"
- 이 속성을