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 |