2014-01-11 2 views
2

В моей деятельности, у меня есть кнопка запуска, и когда щелкнул она должна исчезнуть, и, наконец, исчезает setVisibility(View.GONE)setVisibility (View.GONE) не исчезает вид

Проблемы устанавливает видимость Унесенные Безразлично 't исчезают вид, он все еще виден. Я целенаправленно заставил анимацию представления исчезать до 0,1 (вместо 0), и я вижу это в фоновом режиме даже после того, как я набрал на нем setVisibility(View.GONE).

Fadeout анимации anim_fade_out.xml является:

<?xml version="1.0" encoding="utf-8"?> 
<set 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/linear_interpolator" 
    android:fillAfter="true" android:fillEnabled="true"> 

     <alpha 
      android:fromAlpha="1.0" 
      android:toAlpha="0.1" 
      android:duration="200" /> 
</set> 

Метод showTimer():

private void showTimer() { 
    final LinearLayout startButtonArea = (LinearLayout)findViewById(R.id.startButtonArea);  

    Animation animFadeOut = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.anim_fade_out); 

    startButtonArea.startAnimation(animFadeOut); 

    animFadeOut.setAnimationListener(new AnimationListener() { 
     @Override 
     public void onAnimationEnd(Animation animation) { 
      startButtonArea.setVisibility(View.GONE); 
      Log.d("Animation ended","startButtonArea SHOULD BE GONE BUT IT ISN'T"); 
     } 
     @Override 
     public void onAnimationRepeat(Animation animation) {} 
     @Override 
     public void onAnimationStart(Animation animation) {}  
    }); 

} 

Повторим, я знаю, что конец альфа-анимации составляет 0,1 (это было бы 0, как правило) но я хочу подтвердить, что вид действительно GONE, и это не так.

+0

Попробуйте использовать INVISIBLE вместо пошел – Ogen

ответ

5

Поскольку ваш fillAfter является истинным, анимация устанавливает свойства после вызова onAnimationEnd. Вы можете либо изменить fillAfter к ложным, или сделать это так:

@Override 
public void onAnimationEnd(Animation animation) { 
    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      startButtonArea.setVisibility(View.GONE); 
      Log.d("Animation ended","startButtonArea SHOULD BE GONE BUT IT ISN'T"); 
     } 
    }, 0); 
} 
+0

Да, это так. Позволяет мне просто копировать XML-анимацию без понимания каждого ее фрагмента. – TimSim

+4

Нет, мы разработчики. Вот что мы делаем :) –

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