我正在 Xamarin Forms 中测试新的 Shell 页面。我想知道搜索处理程序是否可以个性化,例如在搜索角上应用圆形效果。我试图重新定义 SearchHandler 的模板,但它只是改变了 Search Handler 结果请求的外观(如何向用户显示建议)。非常感谢你的帮助 !
2 回答
1
经过几次测试,我回来了。
我找到了一种方法来轻松做到这一点。
对于 Shell App 中的顶部导航栏,有一个“Shell.TitleView”标签。
您可以在此标签内定义个性化模板。所以我删除了“SearchHandler”并在“Shell.TitleView”中实现了一个带有圆角的自定义搜索栏。它工作得很好。如果需要,我可以给你样品。
如果您知道另一种方法,我将很高兴对其进行测试。
谢谢
于 2020-02-26T13:01:18.047 回答
0
如果在 Shell Application 中使用,我认为不可能实现 Rounded 。SearchHandler
SearchHandler
首先,关于SearchHandler 的外观,有没有办法改变它的 Round :
BackgroundColor
,颜色类型,是搜索框文本的背景颜色。CancelButtonColor
,属于 Color 类型,是取消按钮的颜色。CharacterSpacing
, double 类型,是 SearchHandler 文本的字符之间的间距。FontAttributes
,属于 FontAttributes 类型,指示搜索框文本是斜体还是粗体。FontFamily
,字符串类型,是用于搜索框文本的字体系列。FontSize
, double 类型,是搜索框文本的大小。HorizontalTextAlignment
,属于 TextAlignment 类型,是搜索框文本的水平对齐方式。PlaceholderColor
, 颜色类型,是占位符搜索框文本的颜色。TextColor
,颜色类型,是搜索框文本的颜色。VerticalTextAlignment
,TextAlignment 类型,是搜索框文本的垂直对齐方式。
其次,如果使用Shell Custom Renderers也找不到SearchBar
。NavigationController
例如在 iOS shell 渲染器中:
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来实现它。
于 2020-02-25T06:53:03.210 回答