private void UpdateLayoutAlignment() { if (_layoutAlignment != null) { return; } switch (TextAlignment) { case TextAlignment.Center: _layoutAlignment = Android.Text.Layout.Alignment.AlignCenter; _justificationMode = JustificationMode.None; break; case TextAlignment.Right: _layoutAlignment = Android.Text.Layout.Alignment.AlignOpposite; _justificationMode = JustificationMode.None; break; case TextAlignment.Justify: _layoutAlignment = Android.Text.Layout.Alignment.AlignNormal; _justificationMode = JustificationMode.InterWord; break; default: case TextAlignment.Left: _layoutAlignment = Android.Text.Layout.Alignment.AlignNormal; _justificationMode = JustificationMode.None; break; } }
/// <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 UpdateLayoutAlignment() { if (_layoutAlignment != null) { return; } switch (TextAlignment) { case TextAlignment.Center: _layoutAlignment = Android.Text.Layout.Alignment.AlignCenter; break; case TextAlignment.Right: _layoutAlignment = Android.Text.Layout.Alignment.AlignOpposite; break; default: case TextAlignment.Left: _layoutAlignment = Android.Text.Layout.Alignment.AlignNormal; break; } }
// Invalidate _layoutAlignment partial void OnTextAlignmentChangedPartial() => _layoutAlignment = null;
public static Android.Text.StaticLayout StaticLayout(string charSequence, Android.Text.TextPaint paint, int width, Android.Text.Layout.Alignment align, float spacingmult, float spacingadd, bool includepad) { var source = charSequence ?? ""; //P42.Utils.Debug.Message(source, "ENTER"); if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.M) { var builder = Android.Text.StaticLayout.Builder.Obtain(source, 0, source.Length, paint, width).SetAlignment(align).SetLineSpacing(spacingadd, spacingmult).SetIncludePad(includepad); if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.P) { builder.SetUseLineSpacingFromFallbacks(true); } var layout = builder.Build(); //P42.Utils.Debug.Message(source, "EXIT"); return(layout); } return(new Android.Text.StaticLayout(source, paint, width, align, spacingmult, spacingadd, includepad)); }
public static Android.Text.StaticLayout StaticLayout(ICharSequence charSequence, Android.Text.TextPaint paint, int width, Android.Text.Layout.Alignment align, float spacingmult, float spacingadd, bool includepad) { var source = charSequence ?? new Java.Lang.String(""); //P42.Utils.Debug.Message(source.ToString(), "ENTER"); if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.M) { var builder = Android.Text.StaticLayout.Builder.Obtain(source, 0, source.Length(), paint, width).SetAlignment(align).SetLineSpacing(spacingadd, spacingmult).SetIncludePad(includepad); if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.P) { builder.SetUseLineSpacingFromFallbacks(true); } var layout = builder.Build(); //P42.Utils.Debug.Message(source.ToString(), "EXIT"); return(layout); } #pragma warning disable CS0618 // Type or member is obsolete return(new Android.Text.StaticLayout(source, paint, width, align, spacingmult, spacingadd, includepad)); #pragma warning restore CS0618 // Type or member is obsolete }
public static Android.Text.StaticLayout StaticLayout(ICharSequence source, Android.Text.TextPaint paint, int width, Android.Text.Layout.Alignment align, float spacingmult, float spacingadd, bool includepad) { //P42.Utils.Debug.Message(source.ToString(), "ENTER"); var builder = Android.Text.StaticLayout.Builder.Obtain(source, 0, source.Length(), paint, width).SetAlignment(align).SetLineSpacing(spacingadd, spacingmult).SetIncludePad(includepad); var layout = builder.Build(); //P42.Utils.Debug.Message(source.ToString(), "EXIT"); return(layout); }