Проблема с ActivityIndicator на Xamarin - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь использовать ActivityIndicator в моем проекте Xamarin, чтобы отключить интерфейс на время метода, когда я пытаюсь получить некоторые данные с сервера. Но код после метода, чтобы включить мой пользовательский интерфейс и отключить ActivityIndicator, как-то не используется ...

private async void SyncButton_Clicked(object sender, EventArgs e)
      {
          var Connection = Connectivity.NetworkAccess;
          if (Connection == NetworkAccess.Internet)
          {
              var ConnectionType = Connectivity.ConnectionProfiles;
              if (ConnectionType.Contains(ConnectionProfile.WiFi))
              {
                  MainScreenContent.IsEnabled = false;
                  MainScreenContent.Opacity = 0.2;
                  SyncLoadScreen.IsEnabled = true;
                  SyncLoadScreen.IsRunning = true;
                  SyncLoadScreen.IsVisible = true;

                  GetProperties();

                  MainScreenContent.IsEnabled = true;
                  MainScreenContent.Opacity = 1;
                  SyncLoadScreen.IsEnabled = false;
                  SyncLoadScreen.IsRunning = false;
                  SyncLoadScreen.IsVisible = false;
              }
          }
      }

1 Ответ

0 голосов
/ 12 апреля 2019

Вы препятствуете обновлению вашего пользовательского интерфейса. Для обновления пользовательского интерфейса необходимо использовать поток пользовательского интерфейса. Однако, запустив GetProperties(); в потоке пользовательского интерфейса, вы сохраняете его занятым, и он не может обработать ваши предыдущие запросы на обновление интерфейса. В общем случае вам нужно использовать метод Task.Run для запуска кода в потоке без пользовательского интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...