Xamarin.Forms(Android):向导航栏添加底部边框

交流会

我想在Android的Xamarin Forms中的导航栏中添加底部边框。

在iOS上,我已经编写了一个自定义渲染器:

public class CustomNavigationBarRenderer : NavigationRenderer
{
    private static readonly string ColorCode = "03d79e";
    private static readonly Lazy<UIImage> BorderBottomLine = new Lazy<UIImage>(GetPixelImage);
    
    protected override void OnElementChanged(VisualElementChangedEventArgs e)
    {
        base.OnElementChanged(e);

        if (Element == null)
            return;
        NavigationBar.ShadowImage = BorderBottomLine.Value;
    }

    private static UIImage GetPixelImage()
    {
        UIGraphics.BeginImageContext(new CGSize(1, 1));
        CGContext context = UIGraphics.GetCurrentContext();
        context.SetFillColor(Color.FromHex(ColorCode).ToCGColor());
        context.FillRect(new CGRect(0, 0, 1, 1));
        UIImage image = UIGraphics.GetImageFromCurrentImageContext();
        UIGraphics.EndImageContext();
        return image;
    }
}

不幸的是,在Android上并不是那么简单,或者至少我还没有弄清楚。

有没有简单的方法可以在导航栏上实现底部边框?

导航栏边框底部

ColeX-MSFT

NavigationPage.TitleView 这无济于事,因为它的宽度没有用Navigationbar填充(左侧有空格),更重要的是它仅表示Navigationbar内部的内容(但我们需要border)。

见下面的测试

<NavigationPage.TitleView>

    <StackLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" Spacing="0" Margin="0" Padding="0">
        <Frame BackgroundColor="Red" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"/>
    </StackLayout>
</NavigationPage.TitleView>

在此处输入图片说明


要实现android的底部边框,您可以使用xml文件创建形状,然后在Toolbar上设置背景。

  1. line.xml在文件夹中创建一个名为的文件Resources/drawable,并将以下代码复制到其中。

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
      <item>
        <shape>
          <solid android:color="#06D1A7" />
        </shape>
      </item>
      <item android:bottom="4dp">
        <shape>
          <solid android:color="#221E4E" />   
        </shape>
      </item>
    </layer-list>
    
  2. 将背景设置为 Toolbar.xml

    android:background="@drawable/line"
    

在此处输入图片说明


PS:我尝试在自定义渲染器中实现,但是没有运气,也许有人可以用这种方式提供解决方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

向导航链接添加底部边框,而无需下推其父div

来自分类Dev

xamarin.forms中的导航如何工作?

来自分类Dev

如何删除Xamarin.Forms导航栏?

来自分类Dev

Xamarin Forms导航问题

来自分类Dev

Xamarin Forms与Prism MasterDetail导航

来自分类Dev

如何在iOS的Xamarin Forms中创建导航栏?

来自分类Dev

Xamarin分步向导android视图

来自分类Dev

更改导航栏上的图标-Xamarin.Forms Android

来自分类Dev

Xamarin Forms-Xamarin Forms导航栏在Android上滚动

来自分类Dev

Xamarin将图像添加到导航栏

来自分类Dev

更改iOS Xamarin Forms上导航栏的高度?

来自分类Dev

Xamarin Forms导航栏,中央按钮略带凸起

来自分类Dev

导航栏中的Xamarin Forms标题过渡

来自分类Dev

向导航链接添加底部边框,而无需下推其父div

来自分类Dev

Xamarin.forms如何更改导航栏颜色

来自分类Dev

Xamarin.Forms或Xamarin.Android/Xamarin.IOS

来自分类Dev

xamarin.forms底部的滚动视图粘滞

来自分类Dev

Xamarin.Forms-如何在iOS和Android上使导航/系统栏透明

来自分类Dev

Xamarin.Forms如何禁用导航栏中的“后退”按钮

来自分类Dev

Xamarin Forms导航堆栈内存

来自分类Dev

Xamarin.Forms中的条目自定义渲染器(为Android添加所有边框)

来自分类Dev

添加自定义边框可绘制到 android 相对布局不显示 - Xamarin Forms

来自分类Dev

在 Xamarin.forms 中自定义导航栏

来自分类Dev

Xamarin iOS 透明导航栏

来自分类Dev

适用于 Android 的 Xamarin.Forms 底部菜单

来自分类Dev

禁用 shiftmode xamarin 表单 android 导航栏

来自分类Dev

使用 Xamarin Forms 为 Android 和 iOS 创建底部导航栏

来自分类Dev

Xamarin Android:底部导航视图不起作用

来自分类Dev

Xamarin Forms Android 搜索栏删除下划线

Related 相关文章

热门标签

归档