반응형
ActionBar Navigation
- ActionBar 에 <- (화살표) 아이콘을 배치하여 뒤로가기 기능을 구현
- 아이콘을 표시 후 뒤로가기 기능도 직접 구현 해야 함
- ActionBar에 Option Menu item 을 하나 더 추가 한다고 생각 -> 사용자가 지정한 item 외에 제공되는 HomeButton item을 사용 (HomeButton을 활성화 시켜주고, 이미 정의되어 있는 id로 클릭 이벤트를 구현, onOptionItemSelected() 안에 구현)
class SecondActivity : AppCompatActivity() {
private lateinit var second_binding: ActivitySecondBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
second_binding = ActivitySecondBinding.inflate(layoutInflater) // 뷰바인딩 객체
val view = second_binding.root //뷰바인딩을 통해 레이아웃과 뷰가 결합 -> .root 를 통해 View 객체만를 뽑아내는(?)
setContentView(view)
// HomeButton 메뉴를 활성화 (ActionBar의 OptionMenu에 홈버튼 아이템을 추가)
supportActionBar?.setHomeButtonEnabled(true)
// HomeButton을 노출 시킴
supportActionBar?.setDisplayHomeAsUpEnabled(true)
// HomeButton의 아이콘 설정
//supportActionBar?.setHomeAsUpIndicator(R.mipmap.ic_launcher) //직접 리소스 만들어서 누르고,뗄 때 모양 바뀌게 설정 가능
second_binding.button2.setOnClickListener {
finishActivity()
}
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
// id가 이미 이걸로 설정되어 있음 (옵션메뉴에 사용자가 구성한 아이템 외에 안드에서 제공하는 홈버튼이 하나 더 추가되는 것으로 이해하면 됨)
android.R.id.home -> {
finishActivity()
}
}
return super.onOptionsItemSelected(item)
}
// Back Button 누르면 호출되는 메서드 //항상 백버튼에 대해서도 대비 필요
// 액티비티에서 내가 만든 종료 버튼과 백버튼이 동일한 기능하길 원하면 아래처럼 수정 필요!!
override fun onBackPressed() {
//super.onBackPressed() // 부모 클래스의 메서드를 호출하기 때문에 해당 액티비티 종료됨
finishActivity()
}
fun finishActivity() {
finish()
//애니메이션
overridePendingTransition(R.anim.slide_xml3,R.anim.slide_xml4)
}
}
반응형
'Android' 카테고리의 다른 글
[안드로이드/ActionBar/ToolBar] ToolBar (0) | 2023.04.25 |
---|---|
[안드로이드/ActionBar] ActionBar 커스텀 (0) | 2023.04.25 |
[안드로이드/ActionBar] ActionView (0) | 2023.04.25 |
[안드로이드/ActionBar] ActionBar 란? (0) | 2023.04.25 |
[안드로이드/Activity] Activity Animation (0) | 2023.04.22 |