目的
DialogFragmentでレイアウトを全画面で表示したい。
カスタムダイアログとか作るときに結構使う。
実装
//
open class FullScreenDialogBaseFragment : DialogFragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
dialog?.requestWindowFeature(Window.FEATURE_NO_TITLE)
return super.onCreateView(inflater, container, savedInstanceState)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
view.setOnTouchListener { _, _ ->
if (isCancelable) dismiss()
true
}
}
override fun onStart() {
super.onStart()
// ダイアログを全画面にする
dialog?.window?.apply {
setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
)
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
}
}
}
setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)で全画面にしている。
レイアウト側で背景色を変えたいのでsetBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))で背景色をなくしている。
作って楽しむプログラミング Androidアプリ超入門 | WINGSプロジェクト 髙江 賢, 山田 祥寛 |本 | 通販 | Amazon
AmazonでWINGSプロジェクト 髙江 賢, 山田 祥寛の作って楽しむプログラミング Androidアプリ超入門。アマゾンならポイント還元本が多数。WINGSプロジェクト 髙江 賢, 山田 祥寛作品ほか、お急ぎ便対象商品は当日お届けも可能。また作って楽しむプログラミング Androidアプリ超入門もアマゾン配送商品...