Я сделал Handler и Runnable для ожидания 2 секунд, пока не запустится анимация, но если я покину приложение в это время или открою другой фрагмент, он вылетает с фрагментом исключения, не связанным с контекстом из-за обработчика.Что я могу сделать?Я пробовал многие решения из Интернета, но у меня ничего не получалось, и использование метода startoffset для анимации не является решением.Спасибо за вашу помощь.
(Если я оставлю обработчик и Runnable вне кода, он будет работать нормально)
Handler handler=new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
float dip = 20f;
Resources r = getResources();
float px = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,
dip,
r.getDisplayMetrics()
);
Animation outtoRight = new TranslateAnimation(
Animation.RELATIVE_TO_PARENT, 0,
Animation.RELATIVE_TO_PARENT, 0,
Animation.RELATIVE_TO_PARENT, 0,
Animation.ABSOLUTE, -(willkommen.getHeight() + px));
outtoRight.setDuration(300);
outtoRight.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
willkommen.setLayoutParams(params);
firstlaunchueberblick=true;
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
grid.startAnimation(outtoRight);
willkommen.startAnimation(outtoRight);
}
},2000);
Это мой код внутри фрагмента.