【问题标题】:Xamarin.Forms: OnCreateOptionsMenu method doesn't get called on Android 7.0 and aboveXamarin.Forms:在 Android 7.0 及更高版本上未调用 OnCreateOptionsMenu 方法
【发布时间】:2019-09-14 13:13:34
【问题描述】:

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

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

在进一步搜索时,我得到了this 链接,如果我创建 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);
    }
}

【问题讨论】:

    标签: xamarin xamarin.forms searchview android-7.0-nougat


    【解决方案1】:

    不知道为什么这个自定义方法在以后的版本中不再起作用。但是在 Xamarin 表单中,有一种简单的方法可以在 NavigationBar 中显示 SearchBar。也许你可以试试这个。

    <?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>
    

    【讨论】:

      猜你喜欢
      • 2017-09-28
      • 2015-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2019-12-19
      • 1970-01-01
      相关资源
      最近更新 更多