Xamarin.Forms: метод OnCreateOptionsMenu не вызывается на Android 7.0 и выше - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь отобразить вид поиска на панели навигации в моем проекте xamarin.forms для Android.Но элемент панели поиска (значок поиска) не виден на Android 7.0 и выше, что прекрасно работает на Android 6.0.

Я перешел по этой ссылке, чтобы написать пользовательский рендерер для страницы содержимого.Работает нормально на андроид 6.0.

При дальнейшем поиске я получил эту ссылку, которая работает нормально, если я создаю проект 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);
    }
}

1 Ответ

1 голос
/ 26 апреля 2019

Не знаю, почему этот пользовательский метод больше не работает в более поздней версии. Но в формах Xamarin есть простой способ показать SearchBar в 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>

enter image description here

...