/// <summary> /// Builds a new layout with the specified parameters. /// </summary> public LayoutBuilder( Java.Lang.ICharSequence textFormatted, TextPaint paint, TextUtils.TruncateAt ellipsize, Android.Text.Layout.Alignment layoutAlignment, TextWrapping textWrapping, int maxLines, Size availableSize, bool exactWidth, float lineHeight, LineStackingStrategy lineStackingStrategy, LayoutBuilder existingBuilder ) { _textFormatted = textFormatted; _paint = paint; _ellipsize = ellipsize; _layoutAlignment = layoutAlignment; _textWrapping = textWrapping; _maxLines = maxLines; AvailableSize = availableSize; _exactWidth = exactWidth; _lineHeight = lineHeight; _lineStackingStrategy = lineStackingStrategy; Layout = existingBuilder?.Layout; _metrics = existingBuilder?._metrics; }
private void UpdateTextTrimming() { if (_ellipsize != null) { return; } switch (TextTrimming) { case TextTrimming.CharacterEllipsis: case TextTrimming.WordEllipsis: // For lack of true WordEllipsis support _ellipsize = TruncateEnd; break; case TextTrimming.Clip: case TextTrimming.None: default: _ellipsize = null; break; } }
// Invalidate _ellipsize partial void OnTextTrimmingChangedPartial() => _ellipsize = null;
partial void OnMaxLinesChangedPartial() => _ellipsize = null;
public static Java.Lang.ICharSequence Ellipsize(Java.Lang.ICharSequence text, TextPaint p, float avail, TextUtils.TruncateAt where) { if (AndroidTextUtils == IntPtr.Zero || StaticEllipsize1 == IntPtr.Zero) { return(null); } var methodParams = new JValue[4]; methodParams[0] = new JValue(text); methodParams[1] = new JValue(p); methodParams[2] = new JValue(avail); methodParams[3] = new JValue(where); return(Java.Lang.Object.GetObject <Java.Lang.ICharSequence>( JNIEnv.CallStaticObjectMethod(AndroidTextUtils, StaticEllipsize1, methodParams), JniHandleOwnership.TransferLocalRef)); }