2016-04-19 5 views
1

У меня есть кнопка, которая должна затухать. Но она работает только в первый раз. Это не работает во второй раз.андроид - анимация не работает во второй раз

Вот мой код.

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

<?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> 

я оценил о какой-либо обратной связи.

ответ

0

Одним из подходов к решению этого было бы установить анимацию обнулить

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

EDIT: Вы забыли, чтобы установить его на бесконечные

animation.setRepeatCount(Animation.INFINITE); 

Вот XML

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

documentation


EDIT 2: Я не видел, чтобы вы настраивали альфу. Виноват. Это должно сработать! Вам не нужно повторять это. Это будет работать с методом установки анимации на null.

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

№ Это не работает. Он ведет себя одинаково. Он работает только в первый раз. Он не работает, когда я нажимаю несколько раз. – user826323

+0

@ user826323 См. Мое редактирование –

+0

Это не должно повторяться. поэтому я изменил ваш код, как это, android: repeatCount = «0». Это кнопка. Я не хочу, чтобы он моргнул. Я просто хочу, чтобы он исчезал, когда пользователь щелкает фоновый макет и исчезает, когда пользователь снова нажимает на него. Кнопка исчезает в первый раз, когда я нажимаю макет фона, но он просто появляется во второй раз, а не исчезает. Ваш код по-прежнему не работает. Спасибо, в любом случае. – user826323

Смежные вопросы