我正在使用Xamarin.forms PCL项目制作应用程序 .
我做了我的计时器并且每隔三秒调用一次这个功能 .
void CreateBGAndAnimate()
{
Image bg = new Image()
{
Source = "_pagebaby_bg.png",
Aspect = Aspect.Fill
};
AbsoluteLayout.SetLayoutFlags(bg, AbsoluteLayoutFlags.All);
AbsoluteLayout.SetLayoutBounds(bg, new Rectangle(0.5, 1, 1, 0.5));
xAbsoluteLayout.Children.Insert(1, bg);
bg.Opacity = 0;
Task.Factory.StartNew(async () =>
{
await bg.FadeTo(1, 500);
await bg.ScaleTo(2, 1000, Easing.SinInOut);
xAbsoluteLayout.Children.Remove(bg);
});
}
而且非常奇怪的问题 . 永远不会删除FIrst Image . 在第一个之后创建的图像将按照我的预期删除 .
是否有人面临同样的问题?
我错了什么?
谢谢 .
2 回答
您已在UI线程(主线程)中执行UI操作 . 为此使用Device.BeginInvokeOnMainThread方法 .
不确定,但我肯定会确保操作在UI线程上运行,我切换
Opacity
并添加控件,因为您不希望控件在添加后瞬间可见 .我还插了一个停顿: