Android

[삽질][Android] 동적 Dialog Fragment 사용하기(feat. Java)

김한토 2024. 10. 14. 17:56
반응형
SMALL

버튼을 누르면 화면이 커지고 또 버튼을 누르면 화면이 작아지는 동적 Dialog를 사용하게 되었다.

 

이 과정에서 분명 wrap_content로 layout을 감쌌는데 동적으로 화면이 변하지 않는 현상이 발생했다.

그래서 minwidth, minheight도 사용해 보고 별 짓을 다해봤는데, 계속해서 gone 상태에서 visible로 변할 때, 화면이 커지지 않고 컨텐츠들이 잘려서 나왔다.

 

dialog Fragment는 기존 Fragment와는 다르게 넓이와 높이를 지정하는데 주의를 기울여야한다. 

젤 상단 부모 layout을 wrap_content, wrap_content 로 설정 했을 때 문제가 있었다.

이 경우에 match_parent, match_parent 로 변경 한 뒤에 Fragment로 가서 아래의 코드를 적용해보자.

public void onResume() {
        super.onResume();

        Window window = getDialog().getWindow();
        if (window != null) {
            window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
        }
    }

 

Dialog는 화면이 바뀔때마다 onResume()에서 setLayout을 설정 해줘야한다.

 

이 코드를 추가했음에도 화면이 원활하게 조정이 안된다면

example_layout.requestLayout();

.requestLayout()

 

layout 크기가 변경되는 시점에 requestLayout() 를 추가해서 사용해보자.

반응형
LIST