Android

[안드로이드/ActionBar/ToolBar] ToolBar를 이용한 Navigation

gangmini 2023. 4. 25. 04:14
반응형

ToolBar 의 Navigation

  • ActionBar 와 같은 방법으로 Navigation 처리 가능
  • ToolBar 로부터 ActionBar를 추출해서 ActionBar와 동일하게 Navigation 처리

 

*ActionBar Navigation과 너무 비슷하기 때문에 아래 참고!

https://studyroadmap-kkm.tistory.com/130

 

[안드로이드/ActionBar] ActionBar Navigation

ActionBar Navigation ActionBar 에 사용자가 지정한 item 외에 제공되는 HomeButton item을 사용 (HomeButton을 활성화 시켜주고, 이미 정의되어 있는 id로 클릭 이벤트를 구현, onOptionItemSelected() 안에 구현) class Sec

studyroadmap-kkm.tistory.com

 

[SecondActivity.kt]

* 두번 봐도 나쁠 것 없는 코드라 올리기~!!

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
        setContentView(view)

        // 2번쨰 액티비티에서 툴바의 네비게이션 사용시 추가!!
        setSupportActionBar(second_binding.toolbar2)

        // HomeButton 메뉴를 활성화 (ActionBar의 OptionMenu에 홈버튼 아이템을 추가)
        supportActionBar?.setHomeButtonEnabled(true)
        // HomeButton을 노출 시킴
        supportActionBar?.setDisplayHomeAsUpEnabled(true)

        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)
    }
}

반응형