내가 보려고 적는 navigation 사용법...
0. Navigation이란?
https://developer.android.com/jetpack/androidx/releases/navigation?hl=ko
1. 사용법
1. build.gradle 파일에 navigation dependecy(의존성)을 추가하고 sync까지 완료해준다.
2. 네비게이션 파일을 만든다.
res > new > Android Resource File 으로 들어가서 생성해준다.
이때의 파일명은 nav_graph으로, resource type은 navigation으로 설정한다.
3. 네비게이션 파일에 프레그먼트를 추가한다.
여기에서 추가하는 프레그먼트(페이지)는 미리 완성해두어야 한다.
사진과 같은 버튼을 누른 후에 원하는 프레그먼트(페이지)를 추가한다.
4. activity_main.xml 파일에 NavHostFragment를 추가한다.
<androidx.fragment.app.FragmentContainerView
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_graph" />
5. 프래그먼트(페이지) 연결하기
tools:layout="@layout/fragment_category"
이때 네비게이션 파일의 각각의 프래그먼트의 코드 안에 위의 코드를 넣어줘야 페이지의 프리뷰가 나온다!!
1) 화살표를 땅겨서 이동하고 싶은 페이지로 연결을 해준다.
2) 연결하면 코드 상에 action이 생긴다.
6. 버튼 연결하기
1) 각 버튼의 id를 레이아웃 파일에서 설정하기
2) Main Activity에서 NavController 정의하기
3) 첫 시작 프래그먼트로 가서 버튼에 액션을 추가해준다.
onViewCreate에서 버튼의 아이디어를 가져와서 setOnClickListener를 사용한다.
아까 action에 생긴 id를 가져와서 아래 코드 형식에 맞게 써준다.
3줄 요약
1. navigation에서 드로그를 해서 화살표를 생성한다
2. 그 부분에 코드가 생김 (네비게이션 파일에서 확인 가능)
3. 이동하기 전 프래그먼트로 이동해서 setonClickListener에서 it.네비게이션 어쩌구.3번에 생긴 코드 이렇게 짜기 (이게 조건문이랑 비슷한거다)
참고 자료
1. 공식 문서
https://developer.android.com/guide/navigation/navigation-getting-started
2. 참고한 블로그들
'안드로이드' 카테고리의 다른 글
[안드로이드] JWT 사용하기 (0) | 2022.02.22 |
---|---|
[안드로이드/Retrofit2] No type arguments expected for class Call (0) | 2022.02.06 |
[UMC] 8주차 - 사용자 인증 방식(oAuth/Cookie/JWT) (0) | 2022.01.05 |
[UMC] 7주차 - RoomDB (0) | 2022.01.05 |
[UMC] 6주차 - ListView/ RecyclerView / 데이터 렌더링 (0) | 2022.01.05 |