Simple trance animation on Android layout doesn't work a second time


My xml file below

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:weightSum="100" > <!-- top --> <LinearLayout android:id="@+id/top_container" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="60" android:background="@drawable/xxx" > </LinearLayout> <!-- bottom --> <TableLayout android:id="@+id/bottom_container" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="40" android:background="@drawable/yyy" android:padding="20dip" android:stretchColumns="1" android:weightSum="2" > <TableRow> </TableRow> </TableLayout> </LinearLayout> 

animation file trans_from_bottom.xml

  <translate xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator" android:duration="1000" android:fromYDelta="100%" android:toYDelta="0%" /> 

animation file trans_from_top.xml

 <translate xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator" android:duration="1000" android:fromYDelta="-100%" android:toYDelta="0%" /> 

trans_back_to_top.xml

 <translate xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator" android:duration="1000" android:fillAfter="true" android:fromYDelta="0%" android:toYDelta="-100%" /> 

trans_back_to_bottom.xml

  <translate xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/linear_interpolator" android:duration="1000" android:fillAfter="true" android:fromYDelta="0%" android:toYDelta="100%" /> 

Simple class like lines below code

  topCont =(LinearLayout)findViewById(R.id.top_container); botCont =(TableLayout)findViewById(R.id.bottom_container); Animation slidedown = AnimationUtils.loadAnimation(A.this, R.anim.trans_from_top); topCont.setAnimation(slidedown); Animation slideup = AnimationUtils.loadAnimation(A.this, R.anim.trans_from_bottom); botCont.setAnimation(slideup); topCont.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { Animation slideup = AnimationUtils.loadAnimation(A.this, R.anim.trans_back_to_top); topCont.setAnimation(slideup); Animation slidedown = AnimationUtils.loadAnimation(A.this, R.anim.trans_back_to_bottom); botCont.setAnimation(slidedown); } }); 

I tried to display an animation like "Horizontal input and output", animation of click events does not bring the desired result. Please suggest what went wrong?

+4
source share
1 answer

I got an answer instead of setAnimation using startAnimation, each thing works just fine as desired.

+16
source

Source: https://habr.com/ru/post/1432629/


All Articles