Xamarin上的ActivityIndi​​cator问题

时间:2019-04-12 09:40:51

标签: user-interface xamarin

我尝试在Xamarin项目上使用ActivityIndi​​cator在整个方法期间禁用接口,在该方法中,我尝试从服务器获取一些数据。但是,方法后的代码(用于重新启用我的UI并禁用ActivityIndi​​cator)并未以某种方式使用...

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 :(得分:0)

您阻止用户界面更新。要更新用户界面,您需要使用UI线程。但是,通过在UI线程上运行GetProperties();可以使它保持繁忙,并且它无法处理您以前的更新接口请求。通常,您需要使用Task.Run方法在非UI线程上运行代码。