2017-02-28 10 views
0

私は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

あなたがXamarin.AndroidアプリとXamarin.Formsアプリの混合物を持ってここにコードがあります。この回答は、フォームアプリケーションが必要であると仮定しています。あなたはOnCreate関数

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

から次の行を削除し、それが動作する場合、あなたのクロスプラットフォームのプロジェクトにメインページやアプリケーションを移動する必要がありますメインページ

のコンストラクタ
this.ToolbarItems.Add(new ToolbarItem("New Game", "",() => { })); 
this.ToolbarItems.Add(new ToolbarItem("Help", "",() => { })); 

にこれらの行を追加する必要があります。

+0

私はフォームアプリケーションをしたかった。あなたの答えをありがとう。 – Uros

関連する問題