Xamarin Forms: предотвратить автоматическую прокрутку c при фокусе ввода - PullRequest
0 голосов
/ 21 апреля 2020

Я использую формы Xamarin (4.5.0.617) для кроссплатформенного проекта. Я хотел бы предотвратить автоматическую прокрутку c родительского ScrollView, когда запись получает фокус.

Можно ли использовать какое-либо свойство или метод, чтобы избежать автоматической c прокрутки?

1 Ответ

0 голосов
/ 22 апреля 2020

Xamarin улучшает эту функцию, так как люди не хотят перекрывать записи, когда появляется клавиатура, вы можете найти множество потоков, в которых обсуждается проблема

Редактор перекрытий клавиатуры в Xamarin. Формы на iOS

https://forums.xamarin.com/discussion/151812/ios-keyboard-overlapping-entry

https://forums.xamarin.com/discussion/27383/keyboard-hides-input-in-xamarin-forms

Обновление

Вы Можно создать пользовательский рендерер, отключить прокрутку, когда запись получит фокус, включить прокрутку, когда потеряет фокус.

[assembly: ExportRenderer(typeof(Entry), typeof(MyRenderer))]
namespace App2.iOS
{
    class MyRenderer : EntryRenderer
    {
        protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            base.OnElementPropertyChanged(sender, e);
            if (this.Control != null)
            {
                Control.Started += Control_Started;
                Control.Ended += Control_Ended;
            }
        }

        private void Control_Ended(object sender, EventArgs e)
        {
            var s = Control.Superview.Superview.Superview;
            if (s != null && s is UIScrollView)
            {
                var ss = s as UIScrollView;
                ss.ScrollEnabled = true;
            }
        }

        private void Control_Started(object sender, EventArgs e)
        {
            var s = Control.Superview.Superview.Superview;
            if(s != null && s is UIScrollView)
            {
                var ss = s as UIScrollView;
                ss.ScrollEnabled = false;
            }
        }
    }
}

enter image description here

...