res -> New -> Android Resource File
File name은 drawer_menu
아이콘 3개를 nav_camera, nav_photo, nav_slideShow 이름으로 추가해줘야 한다.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_camera"
android:icon="@drawable/ic_camera"
android:title="Camera"/>
<item
android:id="@+id/nav_photo"
android:icon="@drawable/ic_photo"
android:title="Photo"/>
<item
android:id="@+id/nav_slideShow"
android:icon="@drawable/ic_slideshow"
android:title="SlideShow"/>
</group>
</menu>
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/toolbar_layout" />
</LinearLayout>
<com.google.android.material.navigation.NavigationView
android:id="@+id/navigationView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="left"
android:fitsSystemWindows="true"
app:menu="@menu/drawer_menu" />
</androidx.drawerlayout.widget.DrawerLayout>
class MainActivity : AppCompatActivity() {
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)
val drawerLayout: DrawerLayout = findViewById(R.id.drawerLayout)
//액션바에 toolbar 셋팅
setSupportActionBar(findViewById(R.id.toolbar))
//네비게이션뷰 아이템 선택 이벤트
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 닫기
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()
}
}//MainActivity