我目前正在调整Google Map MapFragment视图的大小(从全屏高度到半屏)。我使用ValueAnimator来实现此目的,但是动画似乎在设备(Nexus 6p)上落后。我正在使用所有默认的插值器。我做错了什么?
var animY = ValueAnimator.OfFloat(startY, endY);
animY.SetDuration(1000);
animY.AddUpdateListener(new AnimatorUpdatedListener((a) =>
{
var layout = MapFragment.View.LayoutParameters;
layout.Height = (int)a.AnimatedValue;
MapFragment.View.LayoutParameters = layout;
MapFragment.View.RequestLayout();
}));
animY.Start();
[您只需将mapView或mapFragment的初始大小设置为您想要扩展的大小,然后将其放置在较小的支架布局中(您想要的地图的初始大小),并且当要设置动画时,只需设置动画即可持有者视图。由于重新绘制地图会浪费时间,因此会发生滞后。