我在ListView中有一个按钮,它根据按下ActionBar按钮显示和隐藏。
按钮位于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);
}
}
但动画似乎并没有起作用。 如何为列表视图中的按钮设置动画。
答案 0 :(得分:0)
为动画添加Start()
:
btnDel.Animate().TranslationX(btnDel.Width).SetDuration(2000).Start();
答案 1 :(得分:0)
当您按下操作栏时,您可以立即将按钮设置为已消失或可见。
通过添加以下回调侦听器,您需要在动画结束时设置按钮消失或可见:
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;
}
}
屏幕截图: