본문 바로가기

Kotlin

[안드로이드/코틀린] Bottom Sheet Dialog -하단 다이어로그

반응형

Bottom Sheet Dialog 의 Kotlin 버전입니다.

 

다이어 로그를 만들고 사용하는 방법은 다양하므로, 해당 방법은 그 중 하나입니다. 

 

자신의 프로젝트에 맞게 변경해서 사용 혹은 더 적합한 방법으로 진행하시면 됩니다.

 

 

먼저 Bottom_dialog 클래스입니다.

해당 클래스를 코틀린으로 생성해주시면 됩니다.

마찬가지로 Class 이름은 confirm.dialog 이나, 원하시는 이름으로 바꾸셔도 됩니다.

 

class confirm_dialog(context: Context) : BottomSheetDialog(context) {

    
    init {

		//R.layout.confirm_bottom_dialog 하단 다이어로그 생성 버튼을 눌렀을 때 보여질 레이아웃
		val view: View = layoutInflater.inflate(R.layout.confirm_bottom_dialog, null)
        setContentView(view)

		//확인 버튼 
        bottom_dialog_confirm_button.setOnClickListener {
	
    		//다이어 로그 숨기기 
            dismiss()

        }

    }
}


 

//다음은 해당 Bottom Dialog 에서 보여질 xml 파일입니다.

//해당 예제에서는 confirm_bottom_dialog 으로 이름을 적어주었으나, 변경하셔도 됩니다.

//단 변경하실 경우 위에 입력 된 R.layout 부분도 동일하게 변경해주셔야 됩니다. 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
>

    <TextView android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:text="하단 다이어로그입니다."
              android:gravity="center"
              android:textSize="16dp"
              android:textStyle="normal"
              android:textColor="#404040"
              android:layout_marginTop="45dp"
              android:layout_marginBottom="25dp"
    />
    
    <TextView

              android:id="@+id/bottom_dialog_confirm_button"
              android:layout_width="140dp"
              android:layout_height="50dp"
              android:text="확인"
              android:gravity="center"
              android:textSize="16dp"
              android:layout_gravity="center"
              android:layout_marginBottom="20dp"
    />
    


</LinearLayout>

 

//다음 실제 사용

원하시는 부분에서 버튼에 연결시켜 주면 됩니다.

 val confirmDialog = confirm_dialog(this)
 confirmDialog.show()

 

 

해당 부분에서 어렵거나 이해가 안되시는 부분이 있는 경우 댓글로 남겨주시면 답변 달아드리도록 하겠습니다.

 

감사합니다. 

반응형