Xamarin窗体舍入搜索处理程序



我正在Xamarin Forms中测试新的Shell页面。我想知道搜索处理程序是否可以个性化,例如在搜索角应用圆角效果。我试图重新定义搜索处理程序的模板,但它只是改变了搜索处理程序结果请求的外观(如何向用户显示建议(。非常感谢你的帮助!

我在几次测试后回来了。

我找到了一种简单的方法。

对于Shell应用程序中的顶部导航栏,有一个"Shell.TitleView"标记。

您可以在此标记中定义个性化模板。所以我删除了"SearchHandler",并在"Shell.TitleView"中实现了一个带有圆角的自定义搜索栏。它工作得很好。如果需要,我可以给你样品。

如果你知道另一种方法,我很乐意测试它。

感谢

我认为如果在Shell应用程序中使用SearchHandler,则不可能实现舍入的SearchHandler

首先,关于SearchHandler的外观,没有办法更改它的回合:

  • BackgroundColor,类型为Color,是搜索框文本的背景颜色
  • 类型为Color的CancelButtonColor是取消按钮的颜色
  • 类型为double的CharacterSpacing是SearchHandler文本的字符间距
  • 字体属性类型的FontAttributes指示搜索框文本是斜体还是粗体
  • 字符串类型的FontFamily是用于搜索框文本的字体族
  • 类型为double的FontSize是搜索框文本的大小
  • 类型为TextAlignment的HorizontalTextAlignment是搜索框文本的水平对齐方式
  • 类型为Color的PlaceholderColor是占位符搜索框文本的颜色
  • 类型为Color的TextColor是搜索框文本的颜色
  • 类型为TextAlignment的VerticalTextAlignment是搜索框文本的垂直对齐方式

Second,如果使用Shell自定义渲染器,也无法在NavigationController中找到SearchBar

例如,在iOS外壳渲染器中:

public class CustomNavBarAppearanceTracker : IShellNavBarAppearanceTracker
{
public void Dispose()
{
//throw new NotImplementedException();
}
public void ResetAppearance(UINavigationController controller)
{
//throw new NotImplementedException();
}
public void SetAppearance(UINavigationController controller, ShellAppearance appearance)
{
//throw new NotImplementedException();
//var seabar = controller.SearchDisplayController.SearchBar;
controller.NavigationBar.BackgroundColor = UIColor.Red;
Console.WriteLine("-----"+controller.NavigationItem.SearchController.SearchBar);
}
public void UpdateLayout(UINavigationController controller)
{
//throw new NotImplementedException();
}
}

输出为:controller.NavigationItem.SearchController.SearchBar = null

如果不使用SearchHandler,您可以尝试使用Custom SearchBar Renderer来实现它。

最新更新