개요
안드로이드에서 프로그래스 바는 작업 진행 상황을 사용자에게 시각적으로 표시하기 위해 사용됩니다. 일반적으로 비동기 작업(예: 네트워크 요청) 중 사용자에게 로딩 상태를 알리기 위해 사용되며, 사용자가 기다리는 동안 UI가 차단되지 않도록 도와줍니다.
예제 코드
import android.os.Bundle
import android.os.Handler
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import com.example.myapplication.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private val handler = Handler()
private var isProgressBarVisible = false // 프로그래스 바의 표시 여부를 추적
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
// 프로그래스 바를 처음에 보이지 않도록 설정
binding.progressBar.visibility = View.INVISIBLE // 프로그래스 바를 숨김
// 버튼 클릭 시 프로그래스 바 제어
binding.startButton.setOnClickListener {
if (!isProgressBarVisible) { // 프로그래스 바가 보이지 않을 때만 동작
showProgressBar()
}
}
}
private fun showProgressBar() {
isProgressBarVisible = true // 프로그래스 바 표시 상태 업데이트
binding.progressBar.visibility = View.VISIBLE // 프로그래스 바 표시
// 3초 후 프로그래스 바 숨기기
handler.postDelayed({
binding.progressBar.visibility = View.GONE // 프로그래스 바 숨김
isProgressBarVisible = false // 프로그래스 바 상태 업데이트
}, 3000)
}
}
설명
- View.INVISIBLE:
binding.progressBar.visibility = View.INVISIBLE
을 사용하여 프로그래스 바를 초기 상태에서 보이지 않도록 설정합니다.View.INVISIBLE
은 뷰가 화면에서 보이지 않도록 하지만, 해당 뷰가 여전히 레이아웃에 공간을 차지합니다. 이는 사용자가 프로그래스 바의 공간을 인식할 수 있지만, 실제로는 보이지 않는 상태를 의미합니다.
- isProgressBarVisible 변수:
- 이 변수는 프로그래스 바의 현재 표시 상태를 추적합니다. 초기값은
false
로 설정되며, 프로그래스 바가 보일 때true
로 업데이트됩니다.
- 이 변수는 프로그래스 바의 현재 표시 상태를 추적합니다. 초기값은
- 버튼 클릭 이벤트:
- 버튼 클릭 시
isProgressBarVisible
이false
일 때만showProgressBar()
메서드를 호출합니다. 이는 이미 프로그래스 바가 보이는 상태일 경우 중복 호출을 방지합니다.
- 버튼 클릭 시
- showProgressBar() 메서드:
- 프로그래스 바를 표시하고
isProgressBarVisible
을true
로 설정합니다. - 핸들러를 사용하여 3초 후에 프로그래스 바를 숨기고, 다시
isProgressBarVisible
을false
로 설정합니다.
- 프로그래스 바를 표시하고