상세 컨텐츠

본문 제목

[안드로이드 코틀린] DrawerLayout Navigaion 만드는 방법 part4 - 네비게이션 호출 메뉴 버튼 만들기

안드로이드

by aries574 2022. 7. 4. 11:02

본문


이번 시간에는 메뉴 아이콘을 추가해서 네비게이션뷰 호출하는 방법을 알아보겠습니다. 

이전 포스팅은 아래 링크를 들어가시면 됩니다.

2022.07.03 - [안드로이드] - [안드로이드 코틀린] DrawerLayout Navigaion 만드는 방법 part3 - 헤더 화면 만들기

 

[안드로이드 코틀린] DrawerLayout Navigaion 만드는 방법 part3 - 헤더 화면 만들기

이번 시간에는 헤더 화면(header)을 만들어서 추가하는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 헤더 화면 만들기 header_layout.xml 3. 메인 화면 구현 activity_main.xml 1. 실행 화..

aries574.tistory.com


목차

1. 실행 화면
2. 메인 코드 구현 MainActivity.kt


1. 실행 화면


2. 메인 코드 구현 MainActivity.kt

- 설명 -

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 설정

 

[안드로이드 코틀린] Database Room 사용법 part1 - Room 설정

안드로이드에서 앱 내부에 데이터를 관리하는 기능을 하는 Room 사용법에 대하여 알아보겠습니다. 이번 시간에는 기본 설정을 해보겠습니다. 아래 링크를 들어가시면 Room에 대한 상세한 정보를

aries574.tistory.com

2022.06.17 - [안드로이드] - [안드로이드 코틀린] 정해진 시간에 알람 울리는 방법 Notification TimePickerDialog part1 - 설정

 

[안드로이드 코틀린] 정해진 시간에 알람 울리는 방법 Notification TimePickerDialog part1 - 설정

사용자가 정한 시간에 알람이 울리게 하는 방법에 대하여 알아보겠습니다. 이번 시간에는 알람 관련 클래스와 설정들을 만들어 보겠습니다. 목차 1. 알람 클래스 만들기 NotificationHelper.kt 2. 

aries574.tistory.com

2022.06.14 - [안드로이드] - [안드로이드 코틀린] Tab Custom Animation part1 - 화면 구성 및 설정

 

[안드로이드 코틀린] Tab Custom Animation part1 - 화면 구성 및 설정

앞으로 TabLayout을 직접 만들어 애니메이션 기능까지 넣어보도록 하겠습니다. 이번 시간에는 화면 구성 및 설정을 만들어 보겠습니다. 목차 1. 실행 화면 2. dataBinding 설정 build.gradle 3. 테마 변경 t

aries574.tistory.com

 

반응형

관련글 더보기

댓글 영역