개발 지식 공유, 복습

Fragment 이동 - Kotlin 본문

안드로이드(Kotlin)

Fragment 이동 - Kotlin

like_sonny 2022. 1. 28. 16:07

화면을 구성하는 방법은 액티비티와 프래그먼트 보통 2가지로 알고 있다.

이때 프래그먼트는 액티비티의 일부만 바꾸는 방식이다.

 

먼저 메인 액티비티 화면 구성을 해주자. 간단하게 버튼 2개를 액티비티에 두고 각 버튼을 누르면 해당 프래그먼트가 나타나게 구현할 것이다.

main_xml

프래그먼트가 놓일 공간을 FrameLayout으로 놓는다. 이는 Layout 부분에서 찾을 수 있다.

화면 구성

그리고 각 프래그먼트를 구성할 xml을 만들어준다.

frament xml

또 다른 프래그먼트 또한 이와 비슷하게 구성했다.

프래그먼트 클래스이다.

Fragment

 

그 전 블로그처럼 액티비티뿐 아니라 프래그먼트도 viewBinding을 이용해 구현해보았다.

기본적인 설정은 안드로이드 개발자 공식 페이지를 보면 도움이 될 것이다.

 

https://developer.android.com/topic/libraries/view-binding?hl=ko 

 

뷰 결합  |  Android 개발자  |  Android Developers

뷰 결합 뷰 결합 기능을 사용하면 뷰와 상호작용하는 코드를 쉽게 작성할 수 있습니다. 모듈에서 사용 설정된 뷰 결합은 모듈에 있는 각 XML 레이아웃 파일의 결합 클래스를 생성합니다. 바인딩

developer.android.com

그러면 해당 프래그먼트에 있는 아이디들을 binding. 을 통해 접근할 수 있다. 그리고 해당 xml을 바인딩 함으로써 다른 xml에 있는 아이디와 겹쳐도 구분할 수 있어 더 효율적이다. (아 그리고 null safety도 보장된다고 한다!)

28~30줄을 보면 액티비티와 마찬가지로 해당 화면이 없어졌을 때 해당 바인딩을 null로 초기화한다.

 

마지막으로 메인 액티비티를 보자.

Main Activity

메인 액티비티 역시 바인딩을 이용해 구현하였고 해당 버튼을 누르면 해당 프래그먼트로 전환한다.

이때 replace 대신 add를 사용하면 안 된다. 그 이유는 replace는 교체되지만 add를 사용할 경우 화면이 겹치므로 에러가 나거나 원하는 화면이 나오지 않을 것이다.

 

그리고 addToBackStack은 이전 화면들이 스택에 저장되어 휴대폰에서 뒤로 가기 버튼을 누를 경우 이전 화면으로 되돌아가는 것이다. 이를 설정하지 않을 시 어플이 바로 종료된다.

 

마지막으로 결과 화면이다.

결과 화면

'안드로이드(Kotlin)' 카테고리의 다른 글

Retrofit2 - 공공데이터(2)  (0) 2022.05.15
Retrofit2 - 공공데이터(1)  (0) 2022.03.10
인트로 화면(Splash) - Kotlin  (0) 2022.01.28