ObjectDisposedException при отображении с прокруткой - PullRequest
0 голосов
/ 05 февраля 2019

Я запускаю следующее событие в моем приложении Xamarin:

AppEvents.Instance.UI.RiseSearchStringTypingEvent(this, new EventArgs());

HomePage.xaml.cs codebehind подписчик-событие выполняет автоматическую прокрутку вверх каждый раз, когда событиепри каждом входе в поле поиска

void OnSearchStringTyping(object sender, EventArgs e)
{
    scrollView.ScrollToAsync(0.0, 0.0, true);
}

, когда строка поиска завершена и пользователь нажимает кнопку подтверждения, метод Oncompleted () вызывается для SearchHeaderView.xaml.cs , который переходит на SearchPage

void OnCompleted(object sender, EventArgs e)
{
    var tag = this + ".OnCompleted";
    try
    {
        if (string.Compare(LastSearchText, SearchEntry.Text) == 0) return

        if (Device.RuntimePlatform == Device.Android)
        {
            SearchRequest();
        }
        else if (Device.RuntimePlatform == Device.iOS)
        {
            var task = new Task(SearchRequest);
            task.Start();
        }

        LastSearchText = SearchEntry.Text;
    }
    catch (Exception ex)
    {
        Track.Exception(tag, ex);
    }
}

Эта процедура прекрасно работает на платформах iOS ... Но в Android, когда я отправляю строку поиска,приложение вылетает с ObjectDisposedException на ScrollView

Я думаю, проблема в том, что приложение пытается прокрутить представление снова после этогоотходит от домашней страницы.Метод SearchRequest () на Android не вызывается в новом потоке, а iOS вызывается.Как я могу это исправить?Я не могу просто заставить метод вызываться асинхронно, потому что Поиск тогда не работает.

...