-
Notifications
You must be signed in to change notification settings - Fork 1.7k
/
TextAlignmentExtensions.cs
35 lines (32 loc) · 1.16 KB
/
TextAlignmentExtensions.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using Android.OS;
using Android.Widget;
using AGravityFlags = Android.Views.GravityFlags;
namespace Xamarin.Forms.Platform.Android
{
internal static class TextAlignmentExtensions
{
internal static void UpdateHorizontalAlignment(this EditText view, TextAlignment alignment, bool hasRtlSupport, AGravityFlags orMask = AGravityFlags.NoGravity)
{
if ((int)Build.VERSION.SdkInt < 17 || !hasRtlSupport)
view.Gravity = alignment.ToHorizontalGravityFlags() | orMask;
else
view.TextAlignment = alignment.ToTextAlignment();
}
internal static void UpdateVerticalAlignment(this EditText view, TextAlignment alignment, AGravityFlags orMask = AGravityFlags.NoGravity)
{
view.Gravity = alignment.ToVerticalGravityFlags() | orMask;
}
internal static void UpdateTextAlignment(this EditText view, TextAlignment horizontal, TextAlignment vertical)
{
if ((int)Build.VERSION.SdkInt < 17 || !view.Context.HasRtlSupport())
{
view.Gravity = vertical.ToVerticalGravityFlags() | horizontal.ToHorizontalGravityFlags();
}
else
{
view.TextAlignment = horizontal.ToTextAlignment();
view.Gravity = vertical.ToVerticalGravityFlags();
}
}
}
}