Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Xamarin中显示或隐藏按钮时设置动画_C#_Android_Xamarin_Xamarin.android - Fatal编程技术网

C# 在Xamarin中显示或隐藏按钮时设置动画

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

我在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);
    }
}
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;
        }
    }
屏幕截图:


你能详细说明什么不起作用吗?动画,它不起作用,它不起作用我试过了,但似乎不起作用。如何在开始时隐藏动画,然后将动画设置为可见性,反之亦然?