Глядя на код из MvxSwipeRefreshLayout
, можно увидеть, что он наследуется от SwipeRefreshLayout
.SwipeRefreshLayout
содержит логическое значение Refreshing
.Это указывает на то, загружается ли он, и, следовательно, должен отображаться значок загрузки.Если установить значение false, анимация будет скрыта.
Вы можете сделать это, связавшись с ней.Создайте дополнительное свойство, например isRefreshing
, в вашей ViewModel, например:
private bool _isRefreshing;
public bool IsRefreshing
{
get { return _isRefreshing; }
set
{
_isRefreshing = value;
RaisePropertyChanged(() => IsRefreshing);
}
}
Теперь в вашем представлении привязка фактически связывает два типа:
<MvxSwipeRefreshLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
local:MvxBind="Refreshing IsRefreshing; RefreshCommand RefreshCommand">
Теперь вам нужно вручную установитьлогическое значение false, когда ваша «работа по обновлению» завершена.Например:
public IMvxCommand RefreshCommand
{
get
{
return new MvxCommand(async () => {
// This simulates some refresh work which takes 3 seconds
await Task.Delay(3000);
IsRefreshing = false;
});
}
}