[Navigation/네비게이션] startDestination programmatically
2020. 6. 4. 15:17ㆍ└ Android Architecture Component/Navigation
Android Jetpack 의 네비게이션 컴포넌트를 사용할 때
startDestination을 동적으로 바꿔야 할 때가 있다
그 방법에 대해서 알아보자
먼저 코드
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val navController = findNavController(R.id.my_nav_host_fragment)
val navGraph = navController.navInflater.inflate(R.navigation.navigation)
navGraph.startDestination = if(CONDITION) R.id.fragment_one else R.id.fragment_two
navController.graph = navGraph
...
}
- navigation xml 에서 app:startDestination을 지운다.
- activity xml 에서 <fragment> tag 안에 app:defatultNavHost = "true" 와 app:navGraph 를 지운다.
- navController 를 통해 navGraph를 가져온뒤
- navGraph의 startDestination 을 조건에 맞게 설정
- navController의 navGraph를 set해준다
끝
'└ Android Architecture Component > Navigation' 카테고리의 다른 글
[Android/안드로이드] navigation 사용하기(2) - 구성요소 사용방법 (0) | 2020.04.27 |
---|---|
[Android/안드로이드] navigation 사용하기(1) - 이론 정리 (0) | 2020.04.27 |