2012-04-21 21 views
5

Po przetłumaczeniu, przetłumaczony widok OnClickListener nie jest tłumaczony. Próbowałem przesłonić getHitRect w niestandardowym LinearLayout, ale bez powodzenia. Próbowałem również użyć touchdelegate i wszystkie inne propozycje znajdujące się na całym internecie bez powodzenia :)Animacja widoku nie zmienia obszaru dotyku

TranslateAnimation open = new TranslateAnimation(0, displayWidth - ivTimelineWidth, 0, 0); 
open.setDuration(1000); 
open.setFillAfter(true); 
llMapContent.startAnimation(open); 

Proszę mi pomóc :)

Julien

Odpowiedz

7

Jeśli mam zrozumienia problemu poprawnie, chcesz kliknąć coś po przetłumaczeniu i nie rejestruje onTouch czegoś. Ten problem występuje, ponieważ funkcja TranslateAnimation w rzeczywistości nie przesuwa obiektu, tylko piksele na ekranie. Zadzwonisz do onTouch, jeśli dotkniesz obszaru, w którym znajdował się przedmiot. Faktycznie przenieść obiekt zamiast pikseli na ekranie Polecam używanie ten fragment kodu:

MarginLayoutParams marginParams = new MarginLayoutParams(someobject.getLayoutParams()); 
marginParams.setMargins(xx, xx, xx, xx); 
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(marginParams); 
someobject.setLayoutParams(layoutParams); 

Należy to prawdopodobnie miejsce w onAnimationEnd lub onAnimationStart metod. Mam nadzieję że to pomoże.

+0

Dzięki, wydaje się być intersujące, ale mój widok znika na końcu animacji przy użyciu fragmentu kodu ... – Jul

+0

czy zachowałeś fragment fillAftertrue – testingtester

+0

Tak, zachowałem to. – Jul

Powiązane problemy