개요
안드로이드 개발 과정 중 dialog를 구현할 때 흔히 마주치는 Dialog와 DialogFragment에 대한 비교 게시글이다.
DialogFragment란?
DialogFragment는 클래스명에서 보이듯 fragment이다. 하지만, dialog를 보여주는데 활용되는 fragment라는 특징이 있다. 이 Fragment는 Dialog 객체를 포함하고 fragment의 상태에 따라 적절히 화면에 디스플레이 된다.
무엇을 사용해야 하는가?
공식문서에서는 DialogFragment를 사용하는 것을 권장한다. 그 이유는 다음과 같다.
- DialogFragment는 fragment의 생명주기를 활용할 수 있다.
- 기본 Dialog를 활용할 때 Activity가 파괴되더라도 dialog가 존재하여 생기는 leaked window crash, IllegalStateException을 문제를 해결할 수 있다.
- 필요한 때에 따라 fragement, dialog 중 하나로 적절히 사용할 수 있다.
DialogFragment를 Fragment로 사용하는 예:
FragmentTransaction trans = getSupportFragmentManager().beginTransaction();
trans.add(R.id.navigation_fragment, mFriendFragment);
trans.commit();
DialogFragment를 Dialog로 사용하는 예:
FragmentManager fm = getFragmentManager();
UnsubscribeTabletFragment fragment = new UnsubscribeTabletFragment();
fragment.show(fm, "dialog");
참고
'안드로이드' 카테고리의 다른 글
[Android] Coroutine, Retrofit을 활용한 비동기 네트워킹 처리 중 에러 핸들링 (0) | 2021.07.17 |
---|---|
[안드로이드] FCM 서비스를 통해 메시지를 foreground, background에서 받을 경우 데이터 처리 방법 및 액티비티 이동 (2) | 2021.07.09 |
[안드로이드] ListAdapter의 작동 원리 및 갱신이 안되는 경우 (2) | 2021.07.02 |
[Android] SingleLiveEvent + 기타: setValue() vs postValue() (0) | 2021.06.26 |
[Android] AAC의 Paging을 사용하지 않고 Paging 처리 하기 (0) | 2021.05.29 |