Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
PopupMenu (kısayol menüsü olarak da adlandırılır), belirli bir görünüme sabitlenmiş bir menüdür. Aşağıdaki örnekte, tek bir Etkinlik bir düğme içerir. Kullanıcı düğmeye dokunduğunda üç öğeli bir açılır menü görüntülenir:
Açılan Menü Oluşturma
İlk adım, menü için bir menü kaynak dosyası oluşturmak ve bunu Kaynaklar/menü'ye yerleştirmektir. Örneğin, kaynaklar/menü/popup_menu.xml önceki ekran görüntüsünde görüntülenen üç öğeli menünün kodu aşağıdaki XML'dir:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/item1"
android:title="item 1" />
<item android:id="@+id/item1"
android:title="item 2" />
<item android:id="@+id/item1"
android:title="item 3" />
</menu>
Ardından öğesinin bir örneğini PopupMenu oluşturup görünümüne sabitleyebilirsiniz. örneğini PopupMenuoluşturduğunuzda, oluşturucusunun hem menüsüne Context eklendiği görünüme hem de öğesine bir başvuru geçirirsiniz. Sonuç olarak açılır menü, yapısı sırasında bu görünüme tutturulur.
Aşağıdaki örnekte, PopupMenu düğmenin tıklama olay işleyicisinde (adlı showPopupMenu) oluşturulur. Bu düğme, aşağıdaki kod örneğinde gösterildiği gibi sabitlendiği görünümdür PopupMenu :
showPopupMenu.Click += (s, arg) => {
PopupMenu menu = new PopupMenu (this, showPopupMenu);
};
Son olarak, açılır menü daha önce oluşturulan menü kaynağıyla şişirilmelidir. Aşağıdaki örnekte, menünün Inflate yöntemine yapılan çağrı eklenir ve bunu görüntülemek için Show yöntemi çağrılır:
showPopupMenu.Click += (s, arg) => {
PopupMenu menu = new PopupMenu (this, showPopupMenu);
menu.Inflate (Resource.Menu.popup_menu);
menu.Show ();
};
Menü Olaylarını İşleme
Kullanıcı bir menü öğesi seçtiğinde MenuItemClick tıklama olayı tetiklenir ve menü kapatılır. Menünün dışında herhangi bir yere dokunulduğunda yalnızca kapatılır. Her iki durumda da menü kapatıldığında DismissEvent oluşturulur. Aşağıdaki kod hem hem DismissEvent de MenuItemClick olayları için olay işleyicileri ekler:
showPopupMenu.Click += (s, arg) => {
PopupMenu menu = new PopupMenu (this, showPopupMenu);
menu.Inflate (Resource.Menu.popup_menu);
menu.MenuItemClick += (s1, arg1) => {
Console.WriteLine ("{0} selected", arg1.Item.TitleFormatted);
};
menu.DismissEvent += (s2, arg2) => {
Console.WriteLine ("menu dismissed");
};
menu.Show ();
};
