diff options
Diffstat (limited to 'Xamarin.Forms.Platform.Android/Renderers/ProgressBarRenderer.cs')
-rw-r--r-- | Xamarin.Forms.Platform.Android/Renderers/ProgressBarRenderer.cs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Xamarin.Forms.Platform.Android/Renderers/ProgressBarRenderer.cs b/Xamarin.Forms.Platform.Android/Renderers/ProgressBarRenderer.cs new file mode 100644 index 00000000..865732f7 --- /dev/null +++ b/Xamarin.Forms.Platform.Android/Renderers/ProgressBarRenderer.cs @@ -0,0 +1,40 @@ +using System.ComponentModel; +using AProgressBar = Android.Widget.ProgressBar; + +namespace Xamarin.Forms.Platform.Android +{ + public class ProgressBarRenderer : ViewRenderer<ProgressBar, AProgressBar> + { + public ProgressBarRenderer() + { + AutoPackage = false; + } + + protected override void OnElementChanged(ElementChangedEventArgs<ProgressBar> e) + { + base.OnElementChanged(e); + + if (e.OldElement == null) + { + var progressBar = new AProgressBar(Context, null, global::Android.Resource.Attribute.ProgressBarStyleHorizontal) { Indeterminate = false, Max = 10000 }; + + SetNativeControl(progressBar); + } + + UpdateProgress(); + } + + protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) + { + base.OnElementPropertyChanged(sender, e); + + if (e.PropertyName == ProgressBar.ProgressProperty.PropertyName) + UpdateProgress(); + } + + void UpdateProgress() + { + Control.Progress = (int)(Element.Progress * 10000); + } + } +}
\ No newline at end of file |