Also, ich habe eine Lösung gefunden. Wir müssen ValueAnimator verwenden.
clickedButton.Click += (s,e) =>{
int viewHeight = animatedView.Height;
ValueAnimator animator = ValueAnimator.OfInt(viewHeight, 0);
animator.SetDuration(500);
animator.Update += (object sender, ValueAnimator.AnimatorUpdateEventArgs e) =>
{
var value = (int)animator.AnimatedValue;
ViewGroup.LayoutParams layoutParams = animatedView.LayoutParameters;
layoutParams.Height = value;
animatedView.LayoutParameters = layoutParams;
};
animator.Start();
}
Oder wir können Funktion zum Einsturz erstellen/erweitern Animation
ValueAnimator animateCollapse(int from, int to, int duration, View animatedView)
{
ValueAnimator animator = ValueAnimator.OfInt(from, to);
animator.SetDuration(duration);
animator.Update += (object sender, ValueAnimator.AnimatorUpdateEventArgs e) =>
{
var value = (int)animator.AnimatedValue;
ViewGroup.LayoutParams layoutParams = animatedView.LayoutParameters;
layoutParams.Height = value;
animatedView.LayoutParameters = layoutParams;
};
return animator;
}
clickedButton.Click += (s,e) =>{
ValueAnimator animator;
if (isExpanded){
isExpanded = false;
animator = animateCollapse(originalHeight, 0, 500, animatedView);
}
else{
isExpanded = true;
animator = animateCollapse(0, originalHeight, 500, animatedView);
}
animator.Start();
}
Also nicht Xamarin Formen, aber Xamarin Android (Muttersprache)? – Digitalsa1nt
Zu @ Digitalsa1nt Genau –