Xamarin.forms的searchbar怎么保存搜索历史?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xamarin.forms的searchbar怎么保存搜索历史?相关的知识,希望对你有一定的参考价值。

请问:
一个searchbar,当你点击它的时候,出现一个listview显示你的搜索历史,当你输入的时候,根据你的输入匹配数组里的元素,listview显示相应包含输入的内容的元素,当你点击外部的时候,listview会不显示
十分感谢!!!

参考技术A 是在第几集追问

第几集???
不好意思,我不是很理解

在 Xamarin 表单的导航页面中添加 SearchBar

【中文标题】在 Xamarin 表单的导航页面中添加 SearchBar【英文标题】:Add SearchBar in Navigation Page in Xamarin Forms 【发布时间】:2019-12-21 18:03:32 【问题描述】:

我正在按照这些教程在 Xamarin.Forms 中实现 NavigationPage 中的 Searchbar

Searchbar in Navigation bar Or TabbedPage How to add search bar in navigation bar in Xamarin forms A iOS and Android app to monitor the views and clones of your GitHub repos Xamarin Forms - ContentPage with SearchBar in the Navigation bar.

我有一个简单的ContentPage,我在 App.cs 中打开 NavigationPage 表单:

var navigationPage = new Xamarin.Forms.NavigationPage(new Home());
navigationPage.On<iOS>().SetPrefersLargeTitles(true);
MainPage = navigationPage;

在运行项目时,我在以下行中的 Renderer Page 中遇到错误:

Toolbar GetToolbar() => CrossCurrentActivity.Current.Activity.FindViewById<Toolbar>(Resource.Id.toolbar);

抛出的异常是:

System.InvalidCastException: '无法将'Android.Support.V7.Widget.Toolbar'类型的实例转换为'Android.Widget.Toolbar'类型。'

我不知道为什么会出现这个错误,虽然它表明它在转换时有问题。

有人看到我的错误在哪里吗?

【问题讨论】:

【参考方案1】:

解决方案

将您的错误行更改为

var toolbar = CrossCurrentActivity.Current.Activity.FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);

说明

即使您共享的代码不清楚,但您的渲染器 Class 似乎是using Android.Widget,它还定义了一个Toolbar 成员并且可能与返回冲突FindViewById 的值是 Android.Support.V7.Widget.Toolbar

所以,既然已经解释了修复,我想补充一点,解决您的问题的更好方法是删除 using Android.Widget 并添加 using Android.Support.V7.Widget.Toolbar,这样您就可以编写类似的代码

using Android.Support.V7.Widget;
...

// This Toolbar refers to the one in V7!
Toolbar toolbar = CrossCurrentActivity.Current.Activity.FindViewById<Toolbar>(Resource.Id.toolbar);

或者如果您仍然需要using Android.Widget,那么您可以使用别名:

using Android.Widget;
using V7Toolbar = Android.Support.V7.Widget.Toolbar;
...

// This Toolbar refers to the one in V7!
V7Toolbar toolbar = CrossCurrentActivity.Current.Activity.FindViewById<V7Toolbar>(Resource.Id.toolbar);

【讨论】:

以上是关于Xamarin.forms的searchbar怎么保存搜索历史?的主要内容,如果未能解决你的问题,请参考以下文章

xamarin.forms Label点击事件怎么实现

我怎么看我的代码如何执行xamarin.forms

如何用xamarin.forms xaml

蒙面的入口控件 Xamarin.forms

如何调整 xamarin.forms 中的图像大小?

如何调整 xamarin.forms 中的图像大小?