※ navigation(R.id.myNavHostFragment)이 구현되어 있다는 가정하에 쓴 글이다.
// ${ActivityName}
class ${ActivityName} : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// binding
val binding = ${ActivityName}Binding.inflate(layoutInflater)
setContentView(binding.root)
// Navigation Up Button
val navController = this.findNavController(R.id.myNavHostFragment)
NavigationUI.setupActionBarWithNavController(this, navController)
}
// Navigation Up Button
override fun onSupportNavigateUp(): Boolean {
val navController = this.findNavController(R.id.myNavHostFragment)
return navController.navigateUp()
}
}
※ 가끔 Up Button을 눌렀을 때와 Back Button을 눌렀을 때 다르게 동작하는 경우가 있는데, 그럴 때에는 Up Button을 Back Button을 눌렀을 때와의 기능을 통일시키면 쉽게 해결할 수 있다.
// ${ActivityName}
class ${ActivityName} : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// binding
val binding = ${ActivityName}Binding.inflate(layoutInflater)
setContentView(binding.root)
// Navigation Up Button
val navController = this.findNavController(R.id.myNavHostFragment)
NavigationUI.setupActionBarWithNavController(this, navController)
}
// Navigation Up Button
override fun onSupportNavigateUp(): Boolean {
val navController = this.findNavController(R.id.myNavHostFragment)
return navController.navigateUp()
}
// Up Button == Back Button
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
android.R.id.home -> {
onBackPressed()
return true
}
}
return super.onOptionsItemSelected(item)
}
}
'Android' 카테고리의 다른 글
Back Button Click Listener (0) | 2021.07.08 |
---|---|
카메라 촬영 후 이미지뷰로 나타내기 (0) | 2021.07.07 |
카메라 앨범으로부터 사진 가져오기 (0) | 2021.07.06 |
[Open Source] 이미지 줌 인/아웃 - TouchImageView (0) | 2021.07.06 |
[Open Source] 이미지 줌 인/아웃 - PhotoView (0) | 2021.07.05 |