Null/disposed check for spannableString to fix ObjectDisposedException. (#4878) Fixes...
authorMatthew Richardson <matthew@velocitysystems.co.nz>
Tue, 15 Jan 2019 09:57:51 +0000 (09:57 +0000)
committerRui Marinho <me@ruimarinho.net>
Tue, 15 Jan 2019 09:57:51 +0000 (09:57 +0000)
Xamarin.Forms.Platform.Android/Extensions/TextViewExtensions.cs

index a22d3cb..e3a7096 100644 (file)
@@ -74,18 +74,18 @@ namespace Xamarin.Forms.Platform.Android
 
                public static void RecalculateSpanPositions(this TextView textView, Label element, SpannableString spannableString, SizeRequest finalSize)
                {
-                       if (element?.FormattedText?.Spans == null
-                               || element.FormattedText.Spans.Count == 0)
+                       var layout = textView.Layout;
+                       if (layout == null)
                                return;
 
-                       var labelWidth = finalSize.Request.Width;
-
-                       if (labelWidth <= 0 || finalSize.Request.Height <= 0)
+                       if (element?.FormattedText?.Spans == null || element.FormattedText.Spans.Count == 0)
                                return;
 
-                       var layout = textView.Layout;
+                       if (spannableString == null || spannableString.IsDisposed())
+                               return;
 
-                       if (layout == null)
+                       var labelWidth = finalSize.Request.Width;
+                       if (labelWidth <= 0 || finalSize.Request.Height <= 0)
                                return;
 
                        var text = spannableString.ToString();