Home 7월 28일 Today I Learned
Post
Cancel

7월 28일 Today I Learned

오늘한 일

  • A·아이 프로젝트를 진행하였다
  • 블로그 TIL을 작성하였다
  • 1일 1커밋을 하였다

느낌 점

오늘은 기존에 만들었던 기능을 손을 봐서 다른 기능으로 만들었는데 처음에 쉬울 줄 알았으나 꽤나 애를 먹어서 당황했다 하지만 결국 구현하였는데 그러고 나니 또 여기서 더 고칠 부분이 있지 않을까? 자꾸 고민하게 되는데 코드는 한번에 잘 만들려고 하기보단 우선 구현 후 계속해서 개선하는 내 방법이 맞는건지 의문이 든다

배운 점

android 현재 보이는 Fragment 확인

1
2
3
4
5
val navController = findNavController(R.id.nav_host_fragment)

if (navController.currentDestination?.id != R.id.home) {
    
}

위 코드는 예시로 현재 보이는 Fragment가 HomeFragment인지 확인하는 코드이다 위 방법을 알게 된 덕분에

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
override fun onBackPressed() {

    val navController = findNavController(R.id.nav_host_fragment)

    if (navController.currentDestination?.id != R.id.home) {
        navController.popBackStack(R.id.home, false)
    } else {
        if (System.currentTimeMillis() - backPressedTime >= 2000) {
            backPressedTime = System.currentTimeMillis()
            Toast.makeText(this, "한 번 더 누르면 종료됩니다.", Toast.LENGTH_SHORT).show()
        } else {
            finish()
        }
    }
}

현재 Fragment가 HomeFragment라면 2초안에 뒤로가기를 두번 클릭 시 종료되고 아니라면 스택 내 Fragment를 모두 날리고 HomeFragment로 이동하는 코드를 구현할 수 있었다

내일 계획

내일은 A·아이 프로젝트 진행해야겠다

This post is licensed under CC BY 4.0 by the author.

7월 27일 Today I Learned

7월 29일 Today I Learned