I have two views in a RelativeLayout, both of which fill the screen, so 
view B is on top of view A. I also have an animation defined which can move 
view B partially offscreen to show view A underneath. The animation works 
fine, but I'm having the classic issue of the view bounds not moving with 
the view, so the button that I use to trigger the animation (which is 
located on view B) is only clickable from its original position, no matter 
where view B is finally located. The issue that I'm having is that after 
the animation ends, when I set the layout params it's causing view B to be 
redrawn again, translated from the location of the end of the animation.

As a concrete example, the left edge of view B is initially at x = 0, with 
a button at x = 450. When the button is pressed, an animation moves the 
view to x = -400. This works properly - the view is partially off the left 
hand side of the screen, and the button is now at x = 50, so it is still on 
screen. The click area for the button though is still at x = 450. So now I 
set the layout params on view B in the onAnimationEnd listener:

RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) 
viewB.getLayoutParams();
lp.rightMargin = 400;
viewB.setLayoutParams(lp);

Once the new params are set, the view gets 400px of padding on the right, 
moving the entire view to x = -800. The clickable area for the button is 
now properly at x = 50 though, so it seems like I can have it look right or 
act right, but not both. Any idea what I'm doing wrong? Here's how the 
animation is set up.

Animation anim = null;
anim = new TranslateAnimation(0, -400, 0, 0);
anim.setAnimationListener(this);
anim.setDuration(duration);
viewB.startAnimation(anim); 


I have a StackOverflow question on this as well 
at 
http://stackoverflow.com/questions/14077549/moving-android-view-click-boundaries-after-animation

Thanks

Matt

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to