1

У меня проблема с моим переводом. Анимация, которую я создал в android после анимации, запускает любые клики, которые я установил, остается в точных координатах, в которых они были, прежде чем вызывать необычные проблемы, я потратил несколько дней, изучая эту проблему и еще не нашли исправления, некоторые предложения, которые я нашел, включали изменение моего целевого уровня развития до 4.0 и изменение myLayout.layout (x, x, x, x), ни один из них не работал для меня, ни один предложения относительно того, как я могу изменить этот код, чтобы сделать любые клики-клики движущимися с макетом?Android Translate Animation вызывает проблемы с Clicklistener

upperView = (LinearLayout) findViewById(R.id.upperView); 
    hiddenMenu = (LinearLayout) findViewById(R.id.hiddenMenu); 

    DisplayMetrics metrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(metrics); 
    Integer width = metrics.widthPixels; 

    upperView.getLayoutParams().width = width; 
    hiddenMenu.getLayoutParams().width = (int) (width * 0.75); 

    int theDistance = hiddenMenu.getLayoutParams().width; 

    //Run animation 
    TranslateAnimation anim = new TranslateAnimation(0, theDistance - 0 , 0, 0); 
    anim.setDuration(1000); 
    anim.setFillAfter(true); 
    upperView.startAnimation(anim); 
+0

Попробуйте найти способ «действительно» позиционировать перемещаемой Посмотреть объект, где анимация предполагается до конца; т. е. реализовать слушателя для конца анимации и изменить его гравитацию или что-то еще, и сделать эффект перевода непостоянным, таким образом, не полагаясь на переведенную позицию. –

ответ

0

Есть несколько вещей, которые вам нужно знать. андроид или старшая sdk удерживают кнопку on-click в исходном местоположении объекта, и важно, чтобы вы либо создавали невидимое представление в новой позиции для щелчка, либо использовали новинку sdk.

+0

Чтобы лучше объяснить это, вид отличается от объекта в старшем SDK. т. е. если у вас есть значок, физическое представление перемещается только там, где его исходный объект все еще остается в этом месте. вы также можете перенести исходный объект с помощью AnimationListener. – DarthCoder

0

Проблема заключается в том, что TranslateAnimation не изменяет реальную позицию представления, а только переводит позицию ничьей зрения.

Для этого используйте PropertyAnimation. Они уже позиционируются, чтобы фактически просматривать, а не просто позиционировать ничью.

UPDATE: использование Try что-то вроде

upperView.animate().setDuration(1000).translationX(theDistance - 0); 
+0

Должен быть комментарий, так как это не рабочее решение. – ElmoVanKielmo

+0

@ElmoVanKielmo, есть «рабочий раствор» – acvilarim

+0

Теперь это действительно;) – ElmoVanKielmo