Profil Resmi - Hakan Kuyrukçu
Hakan Kuyrukçu
Software Developer
Blog - Detay

Android Custom Menu Yapımı

08.08.2019 Tarihinde Oluşturuldu
Android Custom Menu Yapımı - Blog | Hakan Kuyrukçu

Öncelikle Merhabalar,

Android studio üzerinde bir uygulama geliştirirken layoutlarımızda kullanmak üzere custom menülerin nasıl hazırlandığı, üzerine iconların nasıl konulduğuna dair bilgilendirme yapacağız.

Menümüzü oluşturmadan önce sistemin bize varsayılan olarak sunduğu action bar'ı kaldırmamız gerekiyor. Bunu Activity class'ımızdan da yapabiliriz fakat her activity de tek tek uğraşmak yerine xml üzerinde yazacağımız 1 satır kod ile bunu bütün uygulamaya uygulatabiliyoruz.


<resources>
	<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
		<item name="colorPrimary">@color/colorPrimary</item>
		<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
		<item name="colorAccent">@color/colorAccent</item>
		<item name="windowActionBar">false</item> <!-- Action Bar'ı Kaldırır -->
		<item name="windowNoTitle">true</item> <!-- Pencere Başlıklarını Kaldırır -->
	</style>
</resources>

Üst tarafda görmüş olduğumuz satırları res/values/styles.xml dosyası içerisine yerleştiriyoruz. Yanına yorum satırı yazmış olduğum kısımlar bizim eklememiz gerek satırlar olucaktır.

Sonrasında menümüzü oluşturacağımız activity'nin layout xml kısmına gidiyoruz ve

<android.support.v7.widget.Toolbar
	android:id="@+id/toolbar"
	android:layout_width="match_parent"
	android:layout_height="wrap_content"
	android:minHeight="?attr/actionBarSize"
	android:elevation="4dp"
	android:background="@color/colorPrimary"/> <!-- Arka Plan Rengi -->

menünün oluşacağı nesneyi xml dosyamıza ekliyoruz. Şimdi sıra geldi menünün şekilleneceği xml dosyasını oluşturmaya bunun için öncelikle res klasörü altında eğer ki yoksa menu adında bir resource (kaynak) klasörü oluşturmamız gerekli.  Klasörü oluşturduktan sonra bu klasör altında ise toolbar isimli bir resource (kaynak) dosyası oluşturmamız gerekli. Bu durumda oluşturmuş olduğumuz dosyanın yolu şu şekilde oluşur ; res/menu/toolbar.xml

Şimdi menümüzde bulunmasını istediğimiz iconları internetten bulmanız ve res/drawable klasörü altında göndermeniz gerekmektedir. Bu şu durumda bir refresh (yenileme) iconu kullanacağım. Buna bağlı olarak toolbar.xml dosyamızı şu şekilde biçimlendiriyoruz.

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
	xmlns:app="http://schemas.android.com/apk/res-auto">
	<item android:id="@+id/action_refresh" android:title="Refresh" android:icon="@drawable/ic_refresh_white_48dp" app:showAsAction="ifRoom" />
</menu>

Her item bir menü nesnesini ifade eder. Bu itemlerin id'leri tıklama işlemini algılatmamız için gereklidir, icon ise bu menü nesnesine drawable klasörü altından bir icon veya resim yüklememizi sağlar.

Son bir kaç adımda ise activity class'ımız üzerinden toolbar nesnemizi biçimlendirme ve menü nesnelerine tıklandığında ne gibi işlemler yaptıracağımızı belirteceğiz.

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); <!-- Toolbar nesnemizi id yardımı ile buluyoruz -->
toolbar.setTitleTextColor(Color.WHITE); <!-- Yazı rengini belirliyoruz -->
toolbar.setTitle("ListViewDemo"); <!-- Menümüze bir başlık giriyoruz -->
toolbar.inflateMenu(R.menu.toolbar); <!-- Menünün oluşacağı kaynak xml dosyamızı gösteriyoruz -->
toolbar.setOnMenuItemClickListener(this); <!-- Herhangi bir menü nesnesine tıklandığında oluşacak event'i belirtiyoruz. -->

 Şimdi de son olarak tıklama eventini oluşturacağız.

@Override
public boolean onMenuItemClick(MenuItem item) {
	switch (item.getItemId()) {
		case R.id.action_refresh: <!-- her menü nesnesine verdiğimiz id için case durumu oluşturuyoruz ve yapılmasını istediğimiz işlemi belirtiyoruz. -->
			Toast.makeText(this, "Yenileniyor...", Toast.LENGTH_SHORT).show();
			return true;
		default:
			return false;
	}
}

Custom bir menü oluşturmak bu kadar basit.

İyi günler kolay gelsin :) 

Seo Tagları: android, android studio, custom, menu, android menu