본문 바로가기
안드로이드/Fragment

안드로이드 DialogFragment

by 김어찐 2022. 8. 3.
728x90

dialogfragment 생성하면 넓이랑 높이가 wrap_content로 생성되는데

크기를 조절할려면 onResume에 추가로 설정해야한다

 

    override fun onResume() {
        super.onResume()

        // dialog 넓이 80% 설정

        // 높이 50% 설정
        val params = dialog?.window?.attributes
        params?.width = resources.displayMetrics.widthPixels * 8 /10
        params?.height = resources.displayMetrics.heightPixels * 5 /10
        dialog?.window?.attributes = params as WindowManager.LayoutParams
    }

package com.ej.aboutme.fragment.dialog

import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import android.view.*
import androidx.fragment.app.DialogFragment
import com.ej.aboutme.databinding.FragmentMemberInfoDialogBinding


class MemberInfoFragmentDialog : DialogFragment() {
    lateinit var memberInfoFragmentDialogBinding : FragmentMemberInfoDialogBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

    }

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        memberInfoFragmentDialogBinding = FragmentMemberInfoDialogBinding.inflate(inflater)

        // dialog 모서리 둥글게
        dialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
        dialog?.window?.requestFeature(Window.FEATURE_NO_TITLE)

        // Inflate the layout for this fragment
//        return inflater.inflate(R.layout.fragment_member_info_dialog, container, false)
        return memberInfoFragmentDialogBinding.root
    }


    override fun onResume() {
        super.onResume()

        // dialog 넓이 80% 설정
        val params = dialog?.window?.attributes
        params?.width = resources.displayMetrics.widthPixels * 8 /10
        params?.height = resources.displayMetrics.heightPixels * 5 /10
        dialog?.window?.attributes = params as WindowManager.LayoutParams
    }
}
728x90