C# 在Xamarin中显示或隐藏按钮时设置动画
我在ListView中有一个按钮,它根据ActionBar中的按钮按下来显示和隐藏 按钮在C# 在Xamarin中显示或隐藏按钮时设置动画,c#,android,xamarin,xamarin.android,C#,Android,Xamarin,Xamarin.android,我在ListView中有一个按钮,它根据ActionBar中的按钮按下来显示和隐藏 按钮在GetView中的功能如下 ImageButton btnDel = view.FindViewById<ImageButton>(Resource.Id.btn_row_del); if(_isEdit) { if(btnDel.Visibility == ViewStates.Gone) { btnDel.Animate().TranslationX(0).S
GetView
中的功能如下
ImageButton btnDel = view.FindViewById<ImageButton>(Resource.Id.btn_row_del);
if(_isEdit)
{
if(btnDel.Visibility == ViewStates.Gone)
{
btnDel.Animate().TranslationX(0).SetDuration(2000);
}
}
else
{
if (btnDel.Visibility == ViewStates.Visible)
{
btnDel.Animate().TranslationX(btnDel.Width).SetDuration(2000);
}
}
ImageButton btnDel=view.findviewbyd(Resource.Id.btn\u row\u del);
如果(_isEdit)
{
if(btnDel.Visibility==ViewStates.Gone)
{
btnDel.Animate().TranslationX(0).SetDuration(2000);
}
}
其他的
{
if(btnDel.Visibility==ViewStates.Visible)
{
btnDel.Animate().TranslationX(btnDel.Width).SetDuration(2000);
}
}
但动画似乎不起作用。
如何设置列表视图中按钮的动画。向动画中添加Start()
:
btnDel.Animate().TranslationX(btnDel.Width).SetDuration(2000).Start()代码>当您按下操作栏时,您可以将按钮设置为消失或立即可见
您需要通过添加以下回调侦听器来设置动画结束时按钮消失或可见:
private void Bt2_Click(object sender, System.EventArgs e)
{
if (bt1.Visibility == ViewStates.Visible)
{
AlphaAnimation disappearAnimation = new AlphaAnimation(1, 0);
disappearAnimation.Duration = 2000;
bt1.StartAnimation(disappearAnimation);
disappearAnimation.AnimationStart += DisappearAnimation_AnimationStart;
disappearAnimation.AnimationEnd += DisappearAnimation_AnimationEnd;
}
else
{
AlphaAnimation disappearAnimation = new AlphaAnimation(0, 1);
disappearAnimation.Duration = 2000;
bt1.StartAnimation(disappearAnimation);
disappearAnimation.AnimationStart += DisappearAnimation_AnimationStart;
disappearAnimation.AnimationEnd += DisappearAnimation_AnimationEnd;
}
}
private void DisappearAnimation_AnimationStart(object sender, Animation.AnimationStartEventArgs e)
{
if (bt1.Visibility == ViewStates.Visible)
{
bt1.Animate().TranslationX(bt1.Width).SetDuration(2000);
}
else
{
bt1.Animate().TranslationX(0).SetDuration(2000);
}
}
private void DisappearAnimation_AnimationEnd(object sender, Animation.AnimationEndEventArgs e)
{
if (bt1.Visibility == ViewStates.Visible)
{
bt1.Visibility = ViewStates.Invisible;
}
else
{
bt1.Visibility = ViewStates.Visible;
}
}
屏幕截图:
你能详细说明什么不起作用吗?动画,它不起作用,它不起作用我试过了,但似乎不起作用。如何在开始时隐藏动画,然后将动画设置为可见性,反之亦然?