예제 #1
0
        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;
            }
        }
예제 #2
0
        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);
            }
        }