Membuat Menu Laci dalam Kotlin

Syarat Utama:

Harus mempunyai toolbar

1. Menambah Library

Bukalah file build.gradle.kts ( Module : app )  lalu masukkan kode berikut ini:

implementation(“com.google.android.material:material:latest_version”)

2. Membuat isi dari Menu

Klik kanan folder menu lalu pilih New -> Menu Resource File lalu pada jendela yang tampil beri nama menu_kiri lalu tekan tombol OK maka akan membuat sebuah file dengan isi seperti berikut ini:

<?xml version=”1.0″ encoding=”utf-8″?>
<menu xmlns:android=”http://schemas.android.com/apk/res/android”>

</menu>

Lalu masukkan kode berikut ini diantara tag <menu> dan </menu>:

<item
android:id=”@+id/dashboard”
android:title=”Dashboard”
/>
<item
android:id=”@+id/input”
android:title=”Input Data”
/>
<item
android:id=”@+id/logout”
android:title=”Logout”
/>


3. Membuat String

Bukalah file res/values/string.xml lalu masukkan kode berikut ini:

<string name=”nav_open”>Open</string>
<string name=”nav_close”>Close</string>

Keterangan:

  • String ini digunakan saat pembuatan objek ActionBarDrawerToggle

4. Membuat Activity

Buatlah aktivity bernama LayarUtama dengan memilih menu ini:

File -> New -> Activity -> Emtpy Views Activity

 

5. File Layout

Bukalah file res/layout/activity_layar_utama.xml lalu ganti isinya dengan kode berikut ini:

<?xml version=”1.0″ encoding=”utf-8″?>
<androidx.drawerlayout.widget.DrawerLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
xmlns:app=”http://schemas.android.com/apk/res-auto”
android:id=”@+id/main”
android:layout_width=”match_parent”
android:layout_height=”match_parent”tools:openDrawer=”start”
tools:context=”.LayarUtama”
><com.google.android.material.navigation.NavigationView
android:id=”@+id/nav”
android:layout_width=”wrap_content”
android:layout_height=”match_parent”
android:layout_gravity= “start”
app:menu=”@menu/menu_kiri”/>
</androidx.drawerlayout.widget.DrawerLayout>

6. Perubahan Pada Activity

Bukalah file LayarUtama.kt lalu buatlah variabel global seperti berikut ini:

lateinit var drawerLayout: DrawerLayout
lateinit var actionBarDrawerToggle: ActionBarDrawerToggle

Lalu pada metode onCreate masukkan kode berikut ini:

drawerLayout = findViewById<DrawerLayout>(R.id.main)
actionBarDrawerToggle =
ActionBarDrawerToggle(this, drawerLayout, R.string.nav_open, R.string.nav_close)
drawerLayout.addDrawerListener(actionBarDrawerToggle)
actionBarDrawerToggle.syncState()
supportActionBar?.setDisplayHomeAsUpEnabled(true)

Masukkan kode berikut ini ke dalam Class LayarUtama:

override fun onOptionsItemSelected(item: MenuItem): Boolean {
return if (actionBarDrawerToggle.onOptionsItemSelected(item)) {
true
} else super.onOptionsItemSelected(item)
}

Keterangan:

  • actionBarDrawerToggle adalah class yang digunakan untuk menyatukan Drawer ke Action Bar
  • drawerLayout.addDrawerListener(actionBarDrawerToggle) digunakan untuk menambahkan listener untuk mendengarkan event yang terjadi pada drawer seperti ketika drawer dibuka/ditutup
  • actionBarDrawerToggle.syncState() untuk sinkronisasi state navigation drawer
  • supportActionBar?.setDisplayHomeAsUpEnabled(true) digunakan untuk menampilkan tanda panah atas atau back  pada action bar atau toolbar
  • onOptionsItemSelected adalah metode yang digunakan untuk menangkap menu yang dipilih

7. Theme

Gunakanlah theme yang bukan NoActionBar

Bukalah file res/values/themes.xml lalu masukkan kode berikut ini:

<style name=”Base.Theme.NavigationDrawer” parent=”Theme.Material3.DayNight”>
<!– Customize your light theme here. –>
<!– <item name=”colorPrimary”>@color/my_light_primary</item> –>
</style><style name=”Theme.NavigationDrawer” parent=”Base.Theme.NavigationDrawer” />

 

8. Merubah Theme pada file AndroidManifest.xml

<application
android:theme=”@style/Theme.NavigationDrawer”
</application>

9. Menambah Activity pada file AndroidManifest.xml

<activity
android:name=”.LayarUtama”
android:exported=”true”
android:label=”@string/title_activity_layar_utama”
>

10. Jalankan Aplikasi

Pilih virtual devicemu lalu tekan tombol Play