gpt4 book ai didi

android - Xamarin.Forms (Android) : Add Bottom Border to Navigation Bar

转载 作者:行者123 更新时间:2023-12-04 09:36:52 25 4
gpt4 key购买 nike

我想在 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 上没有那么简单,或者至少我还没有弄清楚。
有没有什么简单的方法可以在导航栏上实现底部边框?
Navigation Bar Border Bottom

最佳答案

NavigationPage.TitleView没有帮助,因为它的宽度没有填充 Navigationbar(左侧有空格),更重要的是它只代表 Navigationbar 内的内容(但我们想要边框)。
看下面的测试

<NavigationPage.TitleView>

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

要实现底部边框 android,您可以使用 xml 文件创建一个形状,并在 Toolbar 上设置背景。
  • 创建一个名为 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>
  • 设置背景 Toolbar.xml
    android:background="@drawable/line"

  • enter image description here

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

    关于android - Xamarin.Forms (Android) : Add Bottom Border to Navigation Bar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62535117/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com