2016-07-06 2 views
-1

На CLICKING на вид orhu i am animatinng ulayout снизу вверх и при нажатии на backgroundview Я делаю это невидимым, анимируя сверху вниз. Но проблема в том, что обе анимации происходят только в первый раз я нажимаю на orbhu. После этого анимация не возникает, и просмотр становится видимым и невидимым без анимации, если я не открою активность. Почему это и как я могу это решить?Анимация происходит только в первый раз

slide_down

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate android:fromYDelta="0%p" android:toYDelta="100%p" android:fillAfter="true" 
     android:interpolator="@android:anim/linear_interpolator" 
     android:duration="500" /> 
</set> 

slide_up

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <translate android:fromYDelta="100%p" android:toYDelta="0%p" 
     android:fillAfter="true" 
     android:duration="500"/> 
</set> 

Код

slideDown = AnimationUtils.loadAnimation(mContext, 
     R.anim.slide_down); 
slideUp = AnimationUtils.loadAnimation(mContext, 
     R.anim.slide_up); 
orbhu.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     ulayout.setAnimation(slideUp); 
     ulayout.setVisibility(View.VISIBLE); 
     backgroundview.setVisibility(View.VISIBLE); 
    } 
}); 
backgroundview.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     ulayout.setAnimation(slideDown); 
     backgroundview.setVisibility(View.GONE); 
     ulayout.setVisibility(View.GONE); 
    } 
}); 
+0

Try View.Invisible вместо View.Gone. –

+0

@ Hari_krish4 та же проблема wid tht также –

+0

Вы попробовали startAnimation вместо setAnimation –

ответ

2

Попробуйте приведенный ниже код вместо

slideDown = AnimationUtils.loadAnimation(mContext, 
     R.anim.slide_down); 
slideUp = AnimationUtils.loadAnimation(mContext, 
     R.anim.slide_up); 
orbhu.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     ulayout.startAnimation(slideUp); 
     ulayout.setVisibility(View.VISIBLE); 
     backgroundview.setVisibility(View.VISIBLE); 
    } 
}); 
backgroundview.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     ulayout.startAnimation(slideDown); 
     backgroundview.setVisibility(View.GONE); 
     ulayout.setVisibility(View.GONE); 
    } 
}); 
Смежные вопросы