스태틱하게 개발중

[Android] FragmentDialog 동적으로 Size, 위치 조절하기 본문

Android

[Android] FragmentDialog 동적으로 Size, 위치 조절하기

야무치리링 2023. 9. 7. 16:55

다이얼로그를 구현하다보면 원하는 사이즈나 위치를 설정해줘야 할 때가 있습니다.

 

val params = dialog!!.window!!.attributes
val metrics = resources.displayMetrics
val widthPixels = metrics.widthPixels
val heightPixels = metrics.heightPixels
params?.width = (widthPixels * 0.7).toInt()
params?.height = (heightPixels * 0.2).toInt()
dialog!!.window!!.attributes = params
dialog!!.window!!.setGravity(Gravity.TOP or Gravity.END)

 

dipalyMetrics로 화면 사이즈를 구한다음 화면 비율에 맞게 계산해줍니다.

계산해준 값을 dialog attributes에 넣어주면 됩니다.

 

다이얼로그의 위치는 레이아웃의 gravity 옵션을 사용하면 됩니다.

오른쪽 위로 위치시켜야 한다면 Gravity.TOP or Gravity.END 으로 설정해줍니다.

위의 설정값은 화면 끝에 붙기 때문에 여백을 주고싶다면 xml에서 rootLayout의 padding 값을 주어 원하는 위치를 조절해주면 됩니다.