我在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中删除以下行
并将这些行添加到MainPage的构造函数中
如果可行,您应该将MainPage和App移动到Cross Platform项目中 .