2017-03-27 29 views
0

私は、ActionBarのボタンの押下に基づいて表示および非表示にするListViewのボタンを持っています。Xamarinで表示または非表示のアニメーションボタン

ボタンは、この

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); 
    } 
} 

ようGetView機能である。しかしアニメーションが動作していないようです。 リストビュー内でボタンをアニメーション化するにはどうすればよいですか?

+0

あなたが働いていない何手の込んだてもらえますか? –

+0

アニメーション、動作していない、アニメ化していない – progrAmmar

答えて

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; 
     } 
    } 

スクリーンショット:

enter image description here

+0

聖なる牛、あなたは素晴らしいです、ありがとう – progrAmmar

0

はアニメーションにStart()を追加します。

btnDel.Animate().TranslationX(btnDel.Width).SetDuration(2000).Start();

+0

私はそれを試みましたが、動作していないようです。 最初にアニメーションを非表示にしてから、視覚効果にアニメーションを適用するにはどうすればよいですか? – progrAmmar

関連する問題