DialogFragmentを扱う
DialogFragment
をフルスクリーンで表示したい
onStart()
メソッド内で以下を設定する。
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
: 背景色を透過に設定する。背景が透過でないと、ダイアログの角などが元の画面に残ってしまいます。setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
: ダイアログの幅と高さを画面いっぱいに広げる。
class CustomDialogFragment : DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return Dialog(requireActivity()).also { dialog ->
// ここで表示したいViewを生成し、ダイアログに設定する
val view = View(requireContext())
dialog.setContentView(view)
}
}
override fun onStart() {
super.onStart()
// onStart() で以下の処理を行う
dialog?.window?.also {
// 1. 背景色を透過に設定する(完全にフルスクリーンにするなら必須)
it.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
// 2. 画面サイズに合わせて表示領域を広げる
it.setLayout(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
}
}
}
最終更新: 2025.9.9