본문 바로가기

Android

[Android] Navigation

https://www.youtube.com/watch?v=QywdsH7YTdI&list=PLxTmPHxRH3VXHOBnaGQcbSGslbAjr8obc&index=12

출처: 오준석의 생존코딩 - 모던안드로이드

 

*Navigation: 프래그먼트 간 이동경로를 지정

 

1. bulid gradle 수정

2. 첫 시작 프래그먼트를 navHostFragment로 지정하기, navGraph속성도 지정해주기.

3. navigation파일을 만들어서 프래그먼트 간 연결을 만들기.

4. navcontroller.navigate(R.id~~) 로 다음 지정해놓은 화면으로 넘어가도록 하기.

 

5. 액션바와의 연동을 위해서는 메인 액티비티에서 NavController, appbarConfigifuration을 만들어서 NavigationUi.setupActionbar~~으로 연결해주기

6. 액션바의 뒤로가기를 하기 위해서는 onSupportNavigateUp() 함수도 오버 라이딩해주기

 

7. 화면을 넘길 때 데이터를 전달하고 싶다면? safe Args이용!  일단 모듈에 플러그인 넣기

8. 내비게이션 파일에서 받는 쪽의 Arguments라는 속성에다가 변수 이름, 타입을 정해줌 (타입을 미리 지정함으로써 안전해짐.)

9. 보내는 프래그먼트에서 action = MainFragmentDirections. 액션 이름(보낼데이터)으로 액션을 만들고, navigate(action)으로 데이터를 넘겨줌

10. 받는 쪽에서는 secondFragmentArgs.fromBundle(getArguments()). get변수 이름();으로 받아줌.

 

*Navigation 장점: intent 안 만들어도 됨, safeArgs를 이용한다면 타입 체크로 안전하게 데이터 전달.

 

'Android' 카테고리의 다른 글

[Android] DataBinding  (0) 2020.09.11
[Android] UI와 로직 분리 ViewModel  (0) 2020.09.11
[Android] Room 비동기 처리  (0) 2020.09.11
[Android] Room - LiveData 연동  (0) 2020.09.11
[Android] DB를 이용한 데이터 저장 방법 room  (0) 2020.09.11