이번 시간에는 메뉴 아이콘을 추가해서 네비게이션뷰 호출하는 방법을 알아보겠습니다.
이전 포스팅은 아래 링크를 들어가시면 됩니다.
2022.07.03 - [안드로이드] - [안드로이드 코틀린] DrawerLayout Navigaion 만드는 방법 part3 - 헤더 화면 만들기
- 설명 -
1. private lateinit var drawerLayout: DrawerLayout
외부에서 사용하기 위해서 전역변수로 변경
2. val actionBar: ActionBar? = supportActionBar
액션바 객체 생성
3. setDisplayHomeAsUpEnabled(true)
액션바에 뒤로가기 버튼 생성
4. setHomeAsUpIndicator(R.drawable.ic_menu)
뒤로가기 이미지 변경
5. onOptionsItemSelected
옵션메뉴 이벤트
class MainActivity : AppCompatActivity() {
lateinit var drawerLayout: DrawerLayout
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val toolbar: Toolbar = findViewById(R.id.toolbar)
val navigationView: NavigationView = findViewById(R.id.navigationView)
drawerLayout = findViewById(R.id.drawerLayout)
//액션바에 toolbar 셋팅
setSupportActionBar(toolbar)
//액션바 생성
val actionBar: ActionBar? = supportActionBar
//뒤로가기 버튼 생성
actionBar?.setDisplayHomeAsUpEnabled(true)
//뒤로가기 버튼 이미지 변경
actionBar?.setHomeAsUpIndicator(R.drawable.ic_menu)
//네비게이션뷰 아이템 선택 이벤트
navigationView.setNavigationItemSelectedListener(
object: NavigationView.OnNavigationItemSelectedListener{
override fun onNavigationItemSelected(item: MenuItem): Boolean {
when(item.itemId){
R.id.nav_camera -> {
item.isChecked = true
displayMessage("selected camera")
drawerLayout.closeDrawers()
return true
}
R.id.nav_photo -> {
item.isChecked = true
displayMessage("selected photo")
drawerLayout.closeDrawers()
return true
}
R.id.nav_slideShow -> {
item.isChecked = true
displayMessage("selected slideShow")
drawerLayout.closeDrawers()
return true
}
else -> {
return true
}
}//when
}//onNavigationItemSelected
}//NavigationView.OnNavigationItemSelectedListener
)//setNavigationItemSelectedListener
}//onCreate
//메시지 알림
private fun displayMessage(message: String){
Toast.makeText(applicationContext, message, Toast.LENGTH_SHORT).show()
}
//메뉴선택 이벤트
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when(item.itemId){
android.R.id.home ->{
//drawerLayout 펼치기
drawerLayout.openDrawer(GravityCompat.START)
}
}
return super.onOptionsItemSelected(item)
}
}//MainActivity
2022.06.24 - [안드로이드] - [안드로이드 코틀린] Database Room 사용법 part1 - Room 설정
2022.06.17 - [안드로이드] - [안드로이드 코틀린] 정해진 시간에 알람 울리는 방법 Notification TimePickerDialog part1 - 설정
2022.06.14 - [안드로이드] - [안드로이드 코틀린] Tab Custom Animation part1 - 화면 구성 및 설정
[안드로이드 코를린] 다이얼로그(Dialog) 체크박스(CheckBox)로 보여주는 방법 (0) | 2022.07.06 |
---|---|
[안드로이드 코틀린] 다이얼로그(Dialog) 리스트(List)로 보여주는 방법 (0) | 2022.07.05 |
[안드로이드 코틀린] DrawerLayout Navigaion 만드는 방법 part3 - 헤더 화면 만들기 (0) | 2022.07.03 |
[안드로이드 코틀린] DrawerLayout Navigaion 만드는 방법 part2 - 메뉴 만들기 (0) | 2022.07.02 |
[안드로이드 코틀린] DrawerLayout Navigation 만드는 방법 part1 - 화면 만들기 (0) | 2022.07.01 |
댓글 영역