본문 바로가기

navigation

(3)
[Android] Fragment간 데이터 공유(Navigation, SafeArgs) Fragment간에 데이터를 공유하는 몇 가지 방법에 대해 적어보고자 한다. 물론 틀린 부분이 있을 수도 있다💦 1. Bundle() fragment의 데이터 전달은 많은 사람들이 bundle을 사용해서 처리해왔다. 사용 방법은 다음과 같다. val testFragment = TestFragment() val bundle = Bundle() bundle.putString("id", et_id.text.toString()) testFragment.arguments = bundle parentFragmentManager.beginTransaction) .replace(R.id.fragment_container, testFragment()) .commit() //ReceiveFragment var restul..
[Android] Navigation Backstack Controll and Pass Data Navigation을 이용하면 어떻게 fragment에서 결과값을 받아올 수 있을까? NavBackStackEntry와 LiveData를 활용하면 fragment의 결과값 전달을 할 수 있다. NavBackStackEntry - 말 그대로 NavController의 BackStack으로 집입시켜주는 메서드이다. - 이를 통해서 SavedStateHandle에 접근할 수 있다. - SavedStateHandle은 viewModel의 상태를 저장해놓은 Saved State를 다루기 위한 객체이다. 그렇다면 navigation에는 backstack을 관리하기 위한 옵션들에 대해서 간단히 짚고 넘어가자 popUpTo는 주어진 도착점이 나올때까지 백스택을 팝업한다. popUpToInclusive 속성이 1) fa..
Navigation으로 Fragment를 전환시켜보자! Navigation In JetPack 보통 Activity의 전환은 Intent, Fragment의 전환은 transaction을 사용했다. Jetpack 라이브러리 내의 Navigation을 이용하면 프래그먼트간의 전환을 구현할 수 있다. 1. dependency 추가하기 build.gradle(app)에 다음과 같이 dependency를 추가해준다. dependencies { def nav_version = "2.3.3" implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" } 2. 프래그먼트 생성 액..