2017-02-07 8 views
0

У меня есть анимация, не работающая, которая должна запускаться при нажатии кнопки, щелчок проверяет, отображается ли изображение и запускает анимацию, если да, то в другом выполняется другая анимация. проблема в том, что работает только анимация в инструкции else. оператор if все еще выполняется, если условия metm проверены с помощью logcat, анимация просто не выполняется. любая помощь оценивается.Android-анимация не работает над методом isShown

следующее вызывается на событии нажатия

if (smsArea.isShown()) { 
       Animation backDoww = AnimationUtils.loadAnimation(getContext(), 
         R.anim.slide_out_right); 
       smsArea.startAnimation(slide_out_right); 
       smsArea.setVisibility(View.GONE); 
      }else{ 
       Animation slide_in_right= AnimationUtils.loadAnimation(getContext(), 
         R.anim.slide_in_right); 
       smsArea.startAnimation(slide_in_right); 
       smsArea.setVisibility(View.VISIBLE); 
      } 

Анимации в моем заявлении еще является единственной, который работает, то первая анимация, которая должна быть запущена с если (smsArea.isShown()) никогда не происходит ,

Я устанавливаю smsArea, чтобы уйти изначально, я делаю это в onCreate, а не в xml, а его левый по умолчанию является жизнеспособным в xml. Я знаю, что ошибка не в моем файле анимации, так как даже если я использую xml-файл в другом, который, как я знаю, работает, анимация не происходит.

XML

  <LinearLayout 
      android:id="@+id/smsArea" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:paddingTop="12dp"> ..... </LinearLayout> 

Анимация

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
android:shareInterpolator="false" > 
<translate android:duration="300" android:fromXDelta="0%" android:toXDelta="100%"/> 
<alpha android:duration="300" android:fromAlpha="1.0" android:toAlpha="0.0" /> 

ответ

0

Добавить анимации слушателя:

backDoww.setAnimationListener(new Animation.AnimationListener() { 
     @Override 
     public void onAnimationStart(Animation animation) { 

     } 

     @Override 
     public void onAnimationEnd(Animation animation) { 
      smsArea.setVisibility(View.GONE); 
     } 

     @Override 
     public void onAnimationRepeat(Animation animation) { 

     } 
    }); 

в onAnimationEnd скрыть свое мнение.

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