728x90
반응형
간단하게 알럿 다이얼로그를 이용해서 로딩 중을 만드는 방법이다.
1. ProgressBar를 포함한 간단한 레이아웃을 만든다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<ProgressBar
android:id="@+id/alert_dialog_progressbar_progressbar"
android:layout_width="80dp"
android:layout_height="80dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginBottom="60dp"
app:layout_constraintBottom_toBottomOf="parent"
android:indeterminateTint="#000000" />
<TextView
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="로딩 중"
android:textColor="@color/black"
android:layout_marginTop="20dp"
android:gravity="center"
android:textStyle="bold"
android:textSize="20sp"
android:textAlignment="center"
app:layout_constraintTop_toBottomOf="@+id/alert_dialog_progressbar_progressbar" />
</androidx.constraintlayout.widget.ConstraintLayout>
2. 다이얼 로그를 여러 곳에서 이용하기 위해 클래스와 함수로 만들어준다.
class Dialog(private val context: Context) {
private val view: View? =
LayoutInflater.from(context).inflate(R.layout.alert_dialog_progressbar, null)
private val builder = AlertDialog.Builder(context)
private val dialog: AlertDialog = builder
.setCancelable(false)
.setView(view)
.create()
fun showDialog(second: Long) {
//로딩
dialog.show()
Handler().postDelayed({
dialog.dismiss()
}, second)
}
fun dismissDialog() {
dialog.dismiss()
}
}
3. 사용하고 싶은 곳에서 다이얼로그를 사용한다.
예)
// 다이얼로그 보여주기
Dialog().showDialog(100)
// 프로그래스 바가 보여지는 동안 할 작업 작성
// 다이얼로그 그만 보여주기
Handler().postDelayed({
Dialog().dismissDialog()
}, 50)
이렇게 클래스로 만들어놓고 사용하면 어디서든 간단하게 프로그래스바를 사용할 수 있다.
728x90
반응형
'App > 개발' 카테고리의 다른 글
[안드로이드] 안드로이드 앱 프로가드 적용하는 방법 (0) | 2020.09.07 |
---|---|
[안드로이드] SwipeRefreshLayout를 사용해서 레이아웃 리프레시하기 (0) | 2020.09.07 |
[안드로이드] 유튜브, 인스타그램 같은 게시글 작성 시간 만들기 (0) | 2020.09.02 |
안드로이드 AlertDialog 띄우기 (0) | 2020.08.24 |
코틀린 팝업메뉴 코드 저장 (0) | 2020.08.24 |