본문 바로가기

Navigation

(4)
[안드로이드] 프래그먼트 스택 (feat. 네비게이션) 개요 안드로이드에서 뷰나 액티비티와 같은 컴포넌트들은 스택으로 관리된다. A에서 B, C화면 순으로 이동하면 A, B, C 순으로 스택에 남아있고 top은 C를 가리키고 있으며, C가 파괴되면 B로 top이 이동하여 화면에 보이는 방식이다. Jetpack의 네비게이션 컴포넌트에서 스택의 관리는 아래와 같다. 스택에 추가 findNavController().navigate(VIEW) 위는 네비게이션 컨트롤러를 통해 다른 뷰로 이동하는 코드이다. 위 코드가 수행될 경우 백 스택에 현재 뷰가 저장된다. popUpTo, popUpToInclusive 위에서 다른 뷰로 이동할 때 백 스택에서 현재 대상을 팝하도록 선택할 수 있다. 예를 들어, 앱에서 로그인 과정이 있다면 사용자가 로그인했을 때 사용자가 뒤로 버튼..
[안드로이드] 예제: MVVM+AAC를 이용한 RecyclerView 8 - Navigation 컴포넌트 활용 개요 이번 문서에서는 과거 문서에서 다룬적이 있는 navigation 컴포넌트를 활용하여 아래와 같은 UI로 바꿀 예정이다. 첫번째 프래그먼트의 영화 아이템을 클릭하면 다이얼로그가 나오고, 다이얼로그의 추가 버튼을 클릭하면 보고 싶은 영화 목록에 추가된다. 보고 싶은 영화 목록은 두번째 프래그먼트이다. 그리고 추가로 이전 문서의 경우 리사이클러뷰의 아이템의 overview를 보면 글이 오른쪽 끝에서 잘린 문제가 있었는데 이 또한 해결한다. 개발과정 프래그먼트 생성 네비게이션 설정 및 생성 리사이클러뷰 어답터 설정 레이아웃 픽스 1. 프래그먼트 생성 프래그먼트의 전반적인 로직은 기존 MainActivity와 같아야 한다. 영화 목록을 보여주는게 핵심 역할이다. 주목할 부분은 onCreateView 부분이다..
[안드로이드] 8. Navigation 심화 이전 문서 리뷰 전 문서에서 Jetpack의 navigation을 통해 MainActivity에서 코드 한줄로 bottomNavigationMenu를 통한 프래그먼트 전환이 가능했다. 이번에는 navigation의 argument, actions를 알아볼 것이다. Argument 말 그대로 화면에서 받을 인자를 설정할 수 있다. 기본적인 int, float 뿐만 아니라 enum 등도 가능하고 배열도 전달이 가능하다. 이를 통해 우리는 Bundle을 통한 값을 전달하는 과정을 더 이상 하지 않아도 된다. Actions 액션은 네비게이션의 이동에 대한 속성이다. navigation xml 파일에서 한 프래그먼트를 우클릭하면 다양한 액션이 가능한 걸 확인할 수 있다. 위 기능들을 실제 활용하는 예제를 아래에서..
[안드로이드] 7. Navigation Navigation 안드로이드 Jetpack의 네비게이션은 기존의 액티비티와 프래그먼트 사이의 복잡한 코드 구성을 간결하게 바꿀 수 있는 라이브러리이다. 또한 네비게이션 그래프를 통해 화면간의 구조를 시각화해서 볼 수 있다는 것도 큰 장점이다. project 단위의 gradle // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = '1.3.71' ext.navigation_version = '2.2.0-rc04' //새로 추가 repositories { google() jcenter() } dependencies { c..