问题描述
所以我的目标是创建一个带有圆角的 ProgressBar。这似乎比它应该的要困难得多。我曾尝试查看 StackOverflow 上的示例,但其中大多数已经过时,或者指的是 Android Studio,这不是我正在使用的。
据我所知,我需要创建一个叫做“自定义渲染器”的东西,它本质上是一个继承自 ProgressBarRenderer
的类。然后更改那里的大部分属性,这看起来有点傻,因为我认为 UI 应该使用 XAML 完成。
在尝试创建自定义渲染器时,我一直遇到多个问题。
第一个是这个
我已经安装了 Xamarin.Forms,但它仍然不断抛出该错误。
然后还有一个关于构造函数的问题。不带任何参数的构造函数已过时且不再起作用,它需要我添加一个 Context
,但我也不能添加,因为它会引发与上述相同的错误。
如何正确创建一个带有圆角的进度条,中间有文字指示它的百分比是多少?
解决方法
您应该添加适当的引用以使用 ProgressBarRenderer:
using App498.Droid;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
自定义渲染器应如下所示:
[assembly: ExportRenderer(typeof(Xamarin.Forms.ProgressBar),typeof(myProgressBarRenderer))]
namespace App498.Droid
{
public class myProgressBarRenderer : ProgressBarRenderer {
public myProgressBarRenderer(Context context) : base(context)
{
}
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.ProgressBar> e)
{
base.OnElementChanged(e);
}
}
}
如果您想为进度条添加圆角,请选中 this thread。
,我会向您推荐 SkiaSharp,图形库,它使您能够创建...一切。 请参阅此处的文档:
https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/graphics/skiasharp/
您需要玩一段时间才能习惯使用它,但它非常直观且易于使用。 要实现圆角,您需要使用路径,如下所述:
碰巧我的应用程序中还需要一个进度条。我已经绘制了一张带有透明线的图片以显示进度,将其与绿色矩形(进度本身)合并,瞧,你有进度条了。当您需要更新进度时,您只需重新绘制进度条即可。
肯定有很多其他解决方案,但我推荐这个解决方案,因为我知道它会很好用。 快乐编码 ;)