मैंने Xamarin Android एप्लिकेशन में मेनू बनाया है। यह पहले पृष्ठ पर दिख रहा है, लेकिन PushAsync के बाद यह गायब हो जाता है। साथ ही पहले पृष्ठ पर लौटने के बाद यह और नहीं दिखा रहा है। यहाँ एक कोड है:

public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity, IOnMenuItemClickListener
{
    protected override void OnCreate(Bundle bundle)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;

        base.OnCreate(bundle);

        global::Xamarin.Forms.Forms.Init(this, bundle);
        LoadApplication(new App());

        var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
        toolbar.InflateMenu(Resource.Menu.action_menu);
        toolbar.SetOnMenuItemClickListener(this);
    }

    public bool OnMenuItemClick(IMenuItem item)
    {
        ...
        return true;
    }
}
    public App()
    {
        InitializeComponent();

        MainPage = new NavigationPage(new MainPage());
    }

public partial class MainPage : ContentPage
{
    ...
    private async void OnSecondPageClicked()
    {
        await Navigation.PushAsync(new SecondPage());
    }
}

फ़ाइल action_menu.xml:

<?xml version="1.0" encoding="utf-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:local="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/item1"
        android:title="new_game"
        android:showAsAction="always"/>
    <item android:id="@+id/item2"
        android:title="help"
        android:showAsAction="always"/>
</menu>
1
Uros 28 फरवरी 2017, 14:19

1 उत्तर

सबसे बढ़िया उत्तर

आपके पास Xamarin.Android ऐप और Xamarin.Forms ऐप का मिश्रण है। यह उत्तर मानता है कि आप एक फॉर्म ऐप चाहते हैं। आपको निम्न पंक्तियों को ऑनक्रेट से हटा देना चाहिए

var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
toolbar.InflateMenu(Resource.Menu.action_menu);
toolbar.SetOnMenuItemClickListener(this);

और इन पंक्तियों को MainPage के कंस्ट्रक्टर में जोड़ें

this.ToolbarItems.Add(new ToolbarItem("New Game", "", () => { }));
this.ToolbarItems.Add(new ToolbarItem("Help", "", () => { }));

यदि वह काम करता है तो आपको MainPage और App को अपने Cross Platform प्रोजेक्ट में ले जाना चाहिए।

1
Martynnw 28 फरवरी 2017, 15:27
मुझे फॉर्म ऐप चाहिए था। आपके उत्तर के लिए धन्यवाद।
 – 
Uros
28 फरवरी 2017, 15:58