본문 바로가기
프로그래밍/Kotlin

[Android] XMl파일을 만들지 않고 Dialog에 ProgressBar 띄우는 코드

by Youngs_ 2022. 9. 5.
            private var dialog: Dialog? = null
            val linearLayout = LinearLayout(context)
            
            linearLayout.gravity = Gravity.CENTER
            linearLayout.setBackgroundColor(Color.TRANSPARENT)


            val progressBar = ProgressBar(context)
            linearLayout.addView(
                progressBar,
                ViewGroup.LayoutParams(
                    ViewGroup.LayoutParams.WRAP_CONTENT,
                    ViewGroup.LayoutParams.WRAP_CONTENT
                )
            )

            dialog = Dialog(context)
            dialog?.requestWindowFeature(Window.FEATURE_NO_TITLE)
            if (dialog?.window != null) {
                dialog?.window?.setBackgroundDrawableResource(android.R.color.transparent)
            }
            dialog?.setContentView(
                linearLayout,
                ViewGroup.LayoutParams(
                    ViewGroup.LayoutParams.MATCH_PARENT,
                    ViewGroup.LayoutParams.MATCH_PARENT
                )
            )
            dialog?.setCancelable(false)
            dialog?.setOnKeyListener { dialog, keyCode, event -> keyCode == KeyEvent.KEYCODE_SEARCH && event.repeatCount == 0 }

            dialog?.window?.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) // Dialog 뒷 배경 검정색으로 나오지않게하기

            dialog?.show()

 

댓글