반응형
Dialog vs Dialogfragment
developer.android.com/guide/topics/ui/dialogs?hl=ko
-> 대화상자를 관리하는 데 DialogFragment를 사용하면 사용자가 뒤로 버튼을 누르거나 화면을 돌리는 등과 같은 수명 주기 이벤트를 올바르게 처리할 수 있습니다. DialogFragment 클래스를 사용하면 대화상자의 UI를 더 큰 UI에 삽입할 수 있는 구성요소로 재사용할 수도 있습니다.
dialogfragment는 dialog에 비해 생명주기를 활용한 프로그래밍이 가능하다는 점에서 용이하다.
DialogFragment를 이용하여 커스텀 대화상자만들기
1. dialog를 커스텀할 layout 구성 - res/layout/dialogtodoadd.xml
2. dialogfragment를 상속한 TodoAddDialogFragment 클래스
package com.example.nm1.src.main.home.nest.todo
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.AdapterView
import android.widget.ArrayAdapter
import androidx.fragment.app.DialogFragment
import com.example.nm1.R
import com.example.nm1.databinding.DialogTodoAddBinding
class TodoAddDialogFragment : DialogFragment() {
//dialogtodoadd의 binding을 사용하여
private lateinit var binding: DialogTodoAddBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//false로 설정해 주면 화면밖 혹은 뒤로가기 버튼시 다이얼로그라 dismiss 되지 않는다.
isCancelable = false
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// 여기서 inflate
binding = DialogTodoAddBinding.inflate(inflater, container, false)
//커스텀 대화상자에서 할 이벤트들을 여기에 정의
return binding.root
}
}
references
developer.android.com/guide/topics/ui/dialogs?hl=ko
반응형
'Android' 카테고리의 다른 글
[Android/kotlin] datepickerdialog 커스텀 / 선택한 날짜의 년,월,일,요일 표시 (0) | 2021.03.08 |
---|---|
[Android/kotlin] spinner 커스텀해서 사용하기 (0) | 2021.03.07 |
[Android/kotlin] okhttp & retrofit으로 json 파싱하기 (4) | 2021.01.29 |
[Android] 팔레트 항목 뜯어보기 (0) | 2021.01.21 |
[Android] AsyncTask 클래스 (0) | 2021.01.20 |