private void UpdateReturnKeyType(ExtEditor element) { switch (element.ReturnKeyType) { case ReturnType.Go: Control.ImeOptions = ImeAction.Go; Control.SetImeActionLabel(element.ReturnKeyType.ToString(), Control.ImeOptions); break; case ReturnType.Next: Control.ImeOptions = ImeAction.Next; Control.SetImeActionLabel(element.ReturnKeyType.ToString(), Control.ImeOptions); break; case ReturnType.Send: Control.ImeOptions = ImeAction.Send; Control.SetImeActionLabel(element.ReturnKeyType.ToString(), Control.ImeOptions); break; case ReturnType.Search: Control.ImeOptions = ImeAction.Search; Control.SetImeActionLabel(element.ReturnKeyType.ToString(), Control.ImeOptions); break; case ReturnType.Done: Control.ImeOptions = ImeAction.Done; Control.SetImeActionLabel(element.ReturnKeyType.ToString(), Control.ImeOptions); break; default: Control.ImeOptions = ImeAction.None; Control.SetImeActionLabel(element.ReturnKeyType.ToString(), Control.ImeOptions); break; } }
protected override void OnElementChanged(ElementChangedEventArgs <Editor> e) { try { base.OnElementChanged(e); if (Control == null || !(Element is ExtEditor element)) { return; } _element = element; Control.Hint = _element.Placeholder; Control.SetHintTextColor(_element.PlaceholderColor.ToAndroid()); UpdateReturnKeyType(_element); if (_element.HorizontalTextAlignment == Xamarin.Forms.TextAlignment.End) { Control.TextAlignment = Android.Views.TextAlignment.ViewEnd; } else if (_element.HorizontalTextAlignment == Xamarin.Forms.TextAlignment.Start) { Control.TextAlignment = Android.Views.TextAlignment.ViewStart; } else if (_element.HorizontalTextAlignment == Xamarin.Forms.TextAlignment.Center) { Control.TextAlignment = Android.Views.TextAlignment.Center; } if (!_element.HasUnderLine) { Control.SetBackgroundColor(Color.Transparent.ToAndroid()); } var intPtrtextViewClass = JNIEnv.FindClass(typeof(TextView)); var mCursorDrawableResProperty = JNIEnv.GetFieldID(intPtrtextViewClass, "mCursorDrawableRes", "I"); JNIEnv.SetField(Control.Handle, mCursorDrawableResProperty, Resource.Drawable.myCursor); SetTextAlignment(); } catch (Exception exception) { Console.WriteLine(exception.Message); } }