2016-04-19 34 views
1

フェードインする必要のあるボタンがありますが、初めての動作です。 2回目は機能しません。アンドロイド - アニメーションは2回目では機能しません。

ここに私のコードです。私は、任意のフィードバックについて感謝のだ

<?xml version="1.0" encoding="UTF-8"?> 
    <set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <alpha 
      android:fromAlpha="0.0" 
      android:toAlpha="1.0" 
      android:interpolator="@android:anim/accelerate_interpolator" 
      android:duration="500"/> 
    </set> 

final TextView doctorInfoView = (TextView) rowView.findViewById(R.id.doctorInfo); 
    final TextView specialtyView = (TextView) rowView.findViewById(R.id.specialty); 

    final ImageButton deleteDoctor = (ImageButton)rowView.findViewById(R.id.deleteDoctor); 
    final Animation fadeInAnimation = AnimationUtils.loadAnimation(context, R.anim.fade_in_animate); 
    final ImageButton editDoctor = (ImageButton)rowView.findViewById(R.id.editDoctor); 
    final RelativeLayout mainRowLayout = (RelativeLayout)rowView.findViewById(R.id.doctorListInfoView); 
    final LinearLayout rowLayout = (LinearLayout)rowView.findViewById(R.id.doctorInfoLayout); 
    final LinearLayout editButtonLayout = (LinearLayout)rowView.findViewById(R.id.editButtonLayout); 
    final LinearLayout deleteButtonLayout = (LinearLayout)rowView.findViewById(R.id.deleteButtonLayout); 
    rowLayout.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      if (isClicked) { 
       editDoctor.setAnimation(fadeInAnimation); 
       editDoctor.setVisibility(View.VISIBLE); 
       deleteDoctor.setAnimation(fadeInAnimation); 
       deleteDoctor.setVisibility(View.VISIBLE); 
       mainRowLayout.setBackgroundColor(Color.parseColor("#ffffff")); 
       doctorInfoView.setTextColor(Color.parseColor("#eeeeee")); 
       specialtyView.setTextColor(Color.parseColor("#eeeeee")); 
       editButtonLayout.setBackgroundColor(Color.parseColor("#16aea3")); 
       deleteButtonLayout.setBackgroundColor(Color.parseColor("#16aea3")); 
       isClicked = false; 
      } else { 
       editDoctor.setVisibility(View.GONE); 
       deleteDoctor.setVisibility(View.GONE); 
                   mainRowLayout.setBackgroundColor(Color.parseColor("#f2f2f4")); 
       doctorInfoView.setTextColor(Color.parseColor("#000000")); 
       specialtyView.setTextColor(Color.parseColor("#0d9e9f")); 
       editButtonLayout.setBackgroundColor(Color.parseColor("#f2f2f4")); 
       deleteButtonLayout.setBackgroundColor(Color.parseColor("#f2f2f4")); 
       isClicked = true; 
      } 
     } 

    }); 

はここfade_in_animate.xmlです。これを解決する

答えて

0

一つのアプローチは、

editDoctor.setVisibility(View.GONE); 
editDoctor.setAnimation(null); 

EDITをnullにアニメーションを設定することです:あなたはここに

animation.setRepeatCount(Animation.INFINITE); 

を無限にそれを設定するのを忘れて、XML

android:repeatCount="-1" 
android:repeatMode="repeat" 
です

こちらは完全ですdocumentation


編集2:アルファを設定しているのを確認できませんでした。私の悪い。これはうまくいくはずです!あなたはそれを繰り返す必要はありません。これは、アニメーションをnullに設定する方法で機能します。

editDoctor.setVisibility(View.GONE); 
editDoctor.setAnimation(null); 
editDoctor.setAlpha(.0f); 
+0

いいえ動作しません。それは同じように動作します。それは、初めて初めて動作します。数回クリックすると動作しません。 – user826323

+0

@ user826323私の編集を参照してください –

+0

それは繰り返されることはありません。だから私はあなたのコードをこのように修正しました:android:repeatCount = "0"それはボタンです。私はそれを点滅させたくありません。ユーザーがバックグラウンドレイアウトをクリックしたときにフェードインし、ユーザーがバックグラウンドレイアウトを再度クリックしたときに消えるようにしたいだけです。バックグラウンドレイアウトをクリックすると、ボタンが最初に消えますが、フェードインではなく2回目にポップアップします。コードはまだ機能しません。とにかくありがとう。 – user826323

関連する問題