Tìm hiểu về Xamarin – Các menu trong Xamarin

Menu Popup

Một menu popup (menu bật lên) đề cập đến một menu được gắn vào một view; nó cũng được gọi là một shortcut menu (menu phím tắt). Hãy xem cách thêm menu bật lên vào ứng dụng Android.

Tạo một dự án mới và gọi nó là popUpMenu App (ng dụng popUpMothy). Mở Main.axml và tạo một button sẽ được sử dụng để hiển thị menu bật lên.

<?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>

Tạo một thư mục mới trong thư mục Resources và gọi nó là Menu. Trong thư mục Menu, thêm một tập tin xml mới có tên popMenu.xml. .

Bên dưới popMenu.xml, thêm các mục menu sau.

<?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>

Sau khi thêm các mục menu, hãy truy cập mainActivity.cs để hiển thị menu bật lên trên button click.

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(); 
   }; 
}

Bây giờ, biên dịch và chạy ứng dụng của bạn. Nó sẽ tạo ra đầu ra sau –

Hiển thị menu Popup

Option Menu (Menu tùy chọn)

Menu tùy chọn là tập hợp các menu chính cho ứng dụng và chủ yếu được sử dụng để lưu trữ cài đặt, tìm kiếm, v.v. Ở đây, chúng ta sẽ tạo một menu cho các cài đặt với ba mục bên trong, là New File Settings, Help, và  About App (Cài đặt tệp mới, Trợ giúp và Về ứng dụng).

Để tạo menu tùy chọn, chúng ta phải tạo tập tin layout XML mới trong thư mục resources. Trước hết, chúng ta sẽ thêm một tệp XML mới. Nhấp chuột phải vào Layout folder, sau đó chuyển đến  Add → New item → Visual C# → XML File..

Chọn một tên thích hợp cho  layout file (tập tin bố cục). Trong ví dụ này, chúng tôi sẽ gọi tệp của chúng ta là myMenu.xml .

Bên trong myMenu.xml, chúng ta sẽ tạo một menu mới và thêm các mục bên trong. Code sau đây cho thấy làm thế nào để làm điều đó.

<?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>

Tiếp theo, chúng ta điều hướng đến MainActivity.cs và tạo một lớp ghi đè cho onOptionsMothy () .

public override bool OnCreateOptionsMenu(IMenu menu) { 
   MenuInflater.Inflate(Resource.Menu.myMenu, menu); 
   return base.OnPrepareOptionsMenu(menu); 
}

Tiếp theo, chúng ta tạo một hành động để đáp ứng settings menu (các cài đặt menu) khi nó được chọn. Để làm điều này, chúng ta tạo một lớp ghi đè khác cho menu OnOptionsItemSelected () .

public override bool OnOptionsItemSelected(IMenuItem item) { 
   if (item.ItemId == Resource.Id.file_settings) { 
      // do something here... 
      return true;  
   } 
   return base.OnOptionsItemSelected(item); 
}

Code hoàn chỉnh cuối cùng của chúng ta sẽ như sau –

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); 
      } 
   } 
}

Bây giờ, xây dựng và chạy ứng dụng của bạn. Nó sẽ tạo ra đầu ra sau –

Cài đặt tệp mới

 

 

 

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *