Xamarin - Menüler
Açılır Menüler
Bir açılır menü, bir görünüme eklenmiş bir menüyü ifade eder; aynı zamanda birshortcut menu. Bir Android Uygulamasına nasıl açılır menü ekleneceğini görelim.
Yeni bir proje oluşturun ve adlandırın popUpMenu App. AçıkMain.axml ve açılır menüyü görüntülemek için kullanılacak bir düğme oluşturun.
<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:orientation = "vertical"
android:background = "#d3d3d3"
android:layout_width = "fill_parent"
android:layout_height = "fill_parent">
<Button
android:id = "@+id/popupButton"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:text = "Show popup menu"
android:background = "@android:color/holo_green_dark"
android:textColor = "@android:color/black" />
</LinearLayout>
Altında yeni bir klasör oluşturun Resources klasör ve ara Menu. Menü klasörünün içine, adlı yeni bir xml dosyası ekleyin.popMenu.xml.
Altında popMenu.xml, aşağıdaki menü öğelerini ekleyin.
<?xml version = "1.0" encoding="utf-8"?>
<menu xmlns:android = "http://schemas.android.com/apk/res/android">
<item
android:id = "@+id/file_settings"
android:icon = "@drawable/img_settings"
android:title = "Settings"
android:showAsAction = "ifRoom">
<item
android:id = "@+id/new_game1"
android:icon = "@drawable/imgNew"
android:title = "New File Settings"/>
<item
android:id = "@+id/help"
android:icon = "@drawable/img_help"
android:title = "Help" />
<item
android:id = "@+id/about_app"
android:icon = "@drawable/img_help"
android:title = "About app"/>
</item>
</menu>
Menü öğelerini ekledikten sonra şuraya gidin: mainActivity.cs Açılır menüyü görüntülemek için düğmeye tıklayın.
protected override void OnCreate(Bundle bundle) {
base.OnCreate(bundle);
SetContentView(Resource.Layout.Main);
Button showPopupMenu = FindViewById<Button>(Resource.Id.popupButton);
showPopupMenu.Click += (s, arg) => {
PopupMenu menu = new PopupMenu(this, showPopupMenu);
menu.Inflate(Resource.Menu.popMenu);
menu.Show();
};
}
Şimdi uygulamanızı oluşturun ve çalıştırın. Aşağıdaki çıktıyı üretmelidir -
Seçenekler Menüsü
Seçenekler Menüsü, bir Uygulama için birincil olan ve temel olarak ayarları saklamak, aramak vb. İçin kullanılan bir menü koleksiyonudur. Burada, içinde üç öğe bulunan ayarlar için bir menü oluşturacağız, yani, New File Settings, Help, and About App.
Seçenekler menüsü oluşturmak için, kaynaklar klasöründe yeni bir XML düzen dosyası oluşturmalıyız. Öncelikle yeni bir XML dosyası ekleyeceğiz. Sağ tıklayınLayout folder, sonra şuraya git Add → New item → Visual C# → XML File.
İçin uygun bir isim seçin layout file. Örneğimizde dosyamızı arayacağızmyMenu.xml.
İçeride myMenu.xml, yeni bir menü oluşturacağız ve içine öğeler ekleyeceğiz. Aşağıdaki kod, bunun nasıl yapılacağını gösterir.
<?xml version = "1.0" encoding = "utf-8"?>
<menu xmlns:android = "http://schemas.android.com/apk/res/android">
<item
android:id = "@+id/file_settings"
android:icon = "@drawable/img_settings"
android:title = "Settings"
android:showAsAction = "ifRoom">
<menu>
<item
android:id = "@+id/new_game1"
android:icon = "@drawable/imgNew"
android:title = "New File Settings" />
<item
android:id = "@+id/help"
android:icon = "@drawable/img_help"
android:title = "Help" />
<item
android:id = "@+id/about_app"
android:icon = "@drawable/img_help"
android:title = "About app"/>
</menu>
</item>
</menu>
Sonra, gidiyoruz MainActivity.cs ve için bir geçersiz kılma sınıfı oluşturun onOptionsMenu().
public override bool OnCreateOptionsMenu(IMenu menu) {
MenuInflater.Inflate(Resource.Menu.myMenu, menu);
return base.OnPrepareOptionsMenu(menu);
}
Ardından, yanıt vermek için bir eylem oluşturuyoruz settings menuseçildiğinde. Bunu yapmak için, başka bir geçersiz kılma sınıfı oluşturuyoruz.OnOptionsItemSelected() Menü.
public override bool OnOptionsItemSelected(IMenuItem item) {
if (item.ItemId == Resource.Id.file_settings) {
// do something here...
return true;
}
return base.OnOptionsItemSelected(item);
}
Son eksiksiz kodumuz aşağıdaki gibi görünecektir -
namespace optionsMenuApp {
[Activity(Label = "options Menu", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity {
public override bool OnCreateOptionsMenu(IMenu menu) {
MenuInflater.Inflate(Resource.Menu.myMenu, menu);
return base.OnPrepareOptionsMenu(menu);
}
public override bool OnOptionsItemSelected(IMenuItem item) {
if (item.ItemId == Resource.Id.file_settings) {
// do something here...
return true;
}
return base.OnOptionsItemSelected(item);
}
}
}
Şimdi uygulamanızı oluşturun ve çalıştırın. Aşağıdaki çıktıyı üretmelidir -