Xamarin.Forms:在 Android 7.0 及更高版本上不会调用 OnCreateOptionsMenu 方法

Xamarin.Forms: OnCreateOptionsMenu method doesn't get called on Android 7.0 and above

我正在尝试在我的 xamarin.forms 项目 Android 的导航栏上显示搜索视图。但是搜索工具栏项(搜索图标)在 android 7.0 及更高版本上不可见,而在 android 6.0.

上可以正常工作

我已按照 this link 为内容页面编写自定义渲染器。它在 android 6.0 上运行良好。

进一步搜索后,我得到 link 如果我创建 xamarin.android 项目,它工作正常,但同样不适用于 xamarin.forms.

这是我的 MainActivity 代码:

public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
    public static Android.Support.V7.Widget.Toolbar ToolBar { get; private set; }

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

    public override bool OnCreateOptionsMenu(IMenu menu)
    {
        ToolBar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
        return base.OnCreateOptionsMenu(menu);
    }
}

不知道为什么这个自定义方法在以后不再起作用 version.But 在 Xamarin forms 中,有一种简单的方法可以在 SearchBar =17=]NavigationBar。也许你可以试试这个。

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Samples.Views.MainPage" Title="Samples">
    <NavigationPage.TitleView>
        <SearchBar Text="input here"></SearchBar>
    </NavigationPage.TitleView>

    <StackLayout>
        <Button Text="SearchPage Sample" VerticalOptions="Center" Clicked="SearchPageSample_Clicked"/>
    </StackLayout>
</ContentPage>