강의 내용은 상당히 길게 나오지만 번역이 자연스럽지 않습니다.
크게 문제 되는 것은 없는데 오타가 많이 발생합니다.
1분 50초 구간에서 activity_main에 fragment를 수정하는 것이 나옵니다.
<!-- The NavHostFragment within the activity_main layout -->
<fragment android:id="@+id/myNavHostFragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:navGraph="@navigation/navigation"
app:defaultNavHost="true" />
이 부분의 코드를 손으로 져야하는데 대문자와 소문자가 많이 나옵니다.
저는 app: defaultNavHost = "true" 부분에서 오타계속 발생하여
진도가 1시간 지연 되었습니다.
이전 7장까지 진행이 되었다면 여기서 갑자기 실행이 되는 일은
없을 것 같으나 오류가 발견된다면 우선 오타 검수를
먼저 하는 것이 좋을 것 같습니다.
오타가 한눈에 보이시나요?
붉은색으로 표시가 안뜨기 때문에 한눈에 보이지 않습니다.
app: defautnavHost = "ture" 작성했었습니다.
가상 에뮬레이터를 실행하면
Execution failed for task ':app:processDebugResources'.
오류가 발생 했었습니다.
1차 오타 발견 : true를 해야하는 ture로 했습니다.실행 에러
2차 오타 발견 : 2차 오타로 NavHost 를 해야하는데 소문자 n을 썼고실행 에러
3차 오타 발견 : detault에서 l이 빠졌고
실행됨
위 사진은 오타가 없는 것입니다.
오타가 없어도 붉은 색으로 표시가 안나고, 오타가 있어도 붉은색으로 표시가 없기 때문에
잘 살펴 보아야합니다.
4분 53초에서 메인화면에서 Play 버튼 누르면 다음화면으로 넘어갈 수 있게
만들어 주는 코딩작업을 하는 중입니다.
//The complete onClickListener with Navigation
binding.playButton.setOnClickListener { view: View -> view.findNavController().navigate(R.id.action_titleFragment_to_gameFragment) }
여기까지는 크게 문제가 없이 실행이 될 것이라고 생각합니다.
문제는 그 다음 부터입니다.
동영상 강의 시간으로 5분 37초에서
kotlin전용으로 코드를 바꿔본다고 하면서 바꾸는작업을 합니다.
Navigation.findNavController(view).navigate(R.id.action_titleFragment_to_gameFragment)
이 문장을
view.findNavController().navigate(R.id.action_titleFragment_to_gameFragment)
이 문장으로 고치는 작업도 여기 포함 되지만
5분 52초에서 갑자기 현재 동영상 사진에 보이는 35줄이
Navigation.createNavigateOnClickListener(R.id)까지
작성 도중에 동영상이 갑자기 뚝 끊어지고 이어집니다.
//The complete onClickListener with Navigation using createNavigateOnClickListener binding.playButton.setOnClickListener( Navigation.createNavigateOnClickListener(R.id.action_titleFragment_to_gameFragment))
솔루션에서 이 붉은색 영역까지 작성 후 끊어지는 것입니다.
솔루션과 같이 .action_titleFragment_to_gameFragment까지 작성을 해주어야합니다.
그리고 55초의 뚝끊어진 다음 재생되는 영상에는
{ view: View ->
view.findNavController().navigate(R.id.action_titleFragment_to_gameFragment) }
부분이 삭제 되어있습니다.
저는 이것을 한눈에 알아보지 못해서 뭐가 어떻게 바뀐건지 살펴보다가 시간을 많이 보냈습니다.
동영상과 같이 작성했던 문장에서 수정을 하는 것이 아니라,
주석처리를 한 후에 새로 작성을 했더니
어디가 어떻게 삭제되었는가 보였습니다.
최종적으로는 제가 작성한 것을 기준으로 40번째 줄에 있는
『 view.findNavController().navigate(R.id.action_titleFragment_to_gameFragment) 』
부분까지 삭제되어야 하는 것입니다.
소괄호 (), 중괄호 {} 부분이 막없어지다 보니 어디가 어떻게 변했는지
눈에 확 들어오지 않습니다.
동영상 강의가 친절하지 않으니 주의해서 보셔야합니다.
최종적으로는 이렇게 되었습니다.
댓글