C# 设置2秒延迟在xamarin中不工作
我正在视图类中显示2秒的淡入淡出动画,2秒后,我想转到viewmodel类运行哪个加载登录页或注册页逻辑 现在它将跳过2秒动画并直接转到viewmodel。idk这里有什么问题 如果我删除行C# 设置2秒延迟在xamarin中不工作,c#,xamarin,xamarin.forms,xamarin.android,xamarin.ios,C#,Xamarin,Xamarin.forms,Xamarin.android,Xamarin.ios,我正在视图类中显示2秒的淡入淡出动画,2秒后,我想转到viewmodel类运行哪个加载登录页或注册页逻辑 现在它将跳过2秒动画并直接转到viewmodel。idk这里有什么问题 如果我删除行BindingContext=new SplashscreenViewModel()将显示动画,但它不会转到viewmodel类 public SplashscreenViewModel() { WhichPageToLoad(); } asy
BindingContext=new SplashscreenViewModel()代码>将显示动画,但它不会转到viewmodel类
public SplashscreenViewModel()
{
WhichPageToLoad();
}
async void WhichPageToLoad()
{
var getToken = await SecureStorage.GetAsync("Save_Pin_1");
if(getToken == null)
{
var route = $"{ nameof(SignupPage)}";
await Shell.Current.GoToAsync(route);
}
else
{
var route = $"{ nameof(LoginPage)}";
await Shell.Current.GoToAsync(route);
}
}
SplashscreenPage.xaml.cs-查看类
public SplashscreenPage ()
{
InitializeComponent ();
Animation();
BindingContext = new SplashscreenViewModel();
}
async void Animation()
{
ssImage.Opacity = 0;
await Task.WhenAll(
ssImage.FadeTo(1, 2000),
ssImage.ScaleTo(1.1, 2000)
);
}//end of method
Splashscreen-viewmodel类
public SplashscreenViewModel()
{
WhichPageToLoad();
}
async void WhichPageToLoad()
{
var getToken = await SecureStorage.GetAsync("Save_Pin_1");
if(getToken == null)
{
var route = $"{ nameof(SignupPage)}";
await Shell.Current.GoToAsync(route);
}
else
{
var route = $"{ nameof(LoginPage)}";
await Shell.Current.GoToAsync(route);
}
}
拥有一个VM类或分配BindingContext
是没有意义的,因为您没有进行任何数据绑定。您可以在动画完成后调用导航代码。您无法从构造函数进行异步调用,因此将动画和导航登录移动到出现的OnAppearing
将允许您进行异步调用
public SplashscreenPage ()
{
InitializeComponent ();
}
async override void OnAppearing()
{
ssImage.Opacity = 0;
await Task.WhenAll(
ssImage.FadeTo(1, 2000),
ssImage.ScaleTo(1.1, 2000)
);
var getToken = await SecureStorage.GetAsync("Save_Pin_1");
if(getToken == null)
{
var route = $"{ nameof(SignupPage)}";
await Shell.Current.GoToAsync(route);
}
else
{
var route = $"{ nameof(LoginPage)}";
await Shell.Current.GoToAsync(route);
}
}
我尝试将动画移动到viewmodel类,但我似乎无法在viewmodel类内部调用FadeTo并绑定到view类感谢@Jason。我正忙于将所有内容移动到viewmodel。。。。我忘了我可以移动到视图。你的解决方案对我有效