Hide view using animation and set visibility to delete without flash screen

I want to hide dicelayout (dicelout was in mainboardlinear), but when the animation ended, the screen went blank due to View.GONE! if I set setfillafter to true and clear View.GONE, I no longer have a flash problem, but my scrollview in mainboardlinear cannot be scrolled in this case!

final RelativeLayout rLayout=(RelativeLayout)findViewById(R.id.dicelayout); Animation animation=new TranslateAnimation(0, 0, 0, -rLayout.getHeight()); animation.setFillAfter(false); animation.setFillBefore(true); animation.setDuration(1000); ((LinearLayout)findViewById(R.id.mainboardlinear)).startAnimation(animation); Thread t=new Thread(new Runnable() { public void run() { try { Thread.sleep(999); runOnUiThread(new Runnable() { public void run() { rLayout.setVisibility(View.GONE); } }); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); t.start(); 
+6
source share
1 answer

using onAnimationEnd from setAnimationListener and setFillEnabled solves my problem.

 Animation animation=new TranslateAnimation(0, 0, 0, -rLayout.getHeight()); animation.setFillEnabled(true); animation.setDuration(1000); animation.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationRepeat(Animation animation) { // TODO Auto-generated method stub } @Override public void onAnimationEnd(Animation animatiofillAftern) { // TODO Auto-generated method stub // mainBoardLinear.removeView(rLayout); rLayout.setVisibility(View.GONE); } }); mainBoardLinear.startAnimation(animation); 
+9
source

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


All Articles