Xamarin.forms Xamarin选项卡栏顶部(边框)线

Xamarin.forms Xamarin选项卡栏顶部(边框)线,xamarin.forms,xamarin.android,xamarin.ios,Xamarin.forms,Xamarin.android,Xamarin.ios,如何在Android和iOS上实现选项卡栏上方的橙色线条 要实现此效果,需要创建自定义选项卡PageRenderer 在Android上: 公共类增强AbbedPageRenderer:TabbedPageRenderer { private BottomNavigationView_BottomNavigationView; 公共增强的AbbedPageRenderContext上下文:basecontext { } 受保护的覆盖无效OnElementChangedElementChanged

如何在Android和iOS上实现选项卡栏上方的橙色线条


要实现此效果,需要创建自定义选项卡PageRenderer

在Android上:

公共类增强AbbedPageRenderer:TabbedPageRenderer { private BottomNavigationView_BottomNavigationView; 公共增强的AbbedPageRenderContext上下文:basecontext { } 受保护的覆盖无效OnElementChangedElementChangedEventArgs e { base.OnElementChangede; 如果e.NewElement!=null { _bottomNavigationView=RelativeLayoutGetChildAt0.GetChildAt1作为bottomNavigationView; } } 受保护覆盖仅限无效布局布尔已更改,整数l,整数t,整数r,整数b { 基础。仅布局已更改,l、t、r、b; //创建一个渐变笔划作为新的上边框。如果需要,设置alpha。 GradientStrokeDrawable topBorderLine=新GradientStrokeDrawable{Alpha=0x33}; //把它改成你想要的颜色。 topBorderLine.SetStroke1,Color.FromRgb0x00,0x00,0x00.ToAndroid; LayerDrawable LayerDrawable=新建LayerDrawable新建Drawable[]{topBorderLine}; layerDrawable.SetLayerInset0,0,0,0,_bottomNavigationView.Height-2; _bottomNavigationView.SetBackgroundlayerDrawable; } } 在iOS上:

公共类增强AbbedPageRenderer:TabbedRenderer { 受保护的覆盖无效OnElementChangedVisualElementChangedEventArgs e { base.OnElementChangede; 如果e.NewElement!=null { //隐藏原点上边框。 uitabar.Appearance.BackgroundImage=新UIImage; uitabar.Appearance.ShadowImage=新的UIImage; //创建一个视图作为新的上边框。将其更改为所需的颜色。如果需要,请设置alpha。 UIView视图=新UIViewnew CGRect0,0,TabBar.Frame.Width,1{BackgroundColor=Color.FromRgb0x00,0x00,0x00.ToUIColor,Alpha=System.nfloat0.2}; //将视图添加到选项卡栏。 TabBar.AddSubviewview; } } }
要实现此效果,需要创建自定义选项卡PageRenderer

在Android上:

公共类增强AbbedPageRenderer:TabbedPageRenderer { private BottomNavigationView_BottomNavigationView; 公共增强的AbbedPageRenderContext上下文:basecontext { } 受保护的覆盖无效OnElementChangedElementChangedEventArgs e { base.OnElementChangede; 如果e.NewElement!=null { _bottomNavigationView=RelativeLayoutGetChildAt0.GetChildAt1作为bottomNavigationView; } } 受保护覆盖仅限无效布局布尔已更改,整数l,整数t,整数r,整数b { 基础。仅布局已更改,l、t、r、b; //创建一个渐变笔划作为新的上边框。如果需要,设置alpha。 GradientStrokeDrawable topBorderLine=新GradientStrokeDrawable{Alpha=0x33}; //把它改成你想要的颜色。 topBorderLine.SetStroke1,Color.FromRgb0x00,0x00,0x00.ToAndroid; LayerDrawable LayerDrawable=新建LayerDrawable新建Drawable[]{topBorderLine}; layerDrawable.SetLayerInset0,0,0,0,_bottomNavigationView.Height-2; _bottomNavigationView.SetBackgroundlayerDrawable; } } 在iOS上:

公共类增强AbbedPageRenderer:TabbedRenderer { 受保护的覆盖无效OnElementChangedVisualElementChangedEventArgs e { base.OnElementChangede; 如果e.NewElement!=null { //隐藏原点上边框。 uitabar.Appearance.BackgroundImage=新UIImage; uitabar.Appearance.ShadowImage=新的UIImage; //创建一个视图作为新的上边框。将其更改为所需的颜色。如果需要,请设置alpha。 UIView视图=新UIViewnew CGRect0,0,TabBar.Frame.Width,1{BackgroundColor=Color.FromRgb0x00,0x00,0x00.ToUIColor,Alpha=System.nfloat0.2}; //将视图添加到选项卡栏。 TabBar.AddSubviewview; } } }
GradientStrokeDrawable在android上对我不起作用。这是我的解决方案:

GradientStrokeDrawable在android上对我不起作用。这是我的解决方案:

您使用的选项卡栏是什么?在Android上,对于默认tabbar的顶部边框线,您可以设置tabbar.xml的选项卡布局背景,然后当您在xamarin.forms中加载选项卡页面时,它将显示顶部边框线。您使用的选项卡栏是什么?在Android上,对于默认tabbar的顶部边框线,您可以设置tabbar.xml的选项卡布局背景,然后当您在xamarin.forms中加载选项卡页面时,它将
如何在顶部边界线。你能告诉我如何在android上更改颜色吗?我试着用Borderline.SetStroke1,Color.Red.ToAndroid;和alpha一起玩,但是线条颜色只会从完全透明变为黑色。你能告诉我如何在android上改变颜色吗?我试着用Borderline.SetStroke1,Color.Red.ToAndroid;使用alpha,但线条颜色仅从完全透明变为黑色。