I have a listview in a fragment container.
Each view within the list has a gesture detector which on gesture up invalidates the list for redraw.
After an item selection I animate the fragment container to another part of the screen
ObjectAnimator x = ObjectAnimator.ofInt(ListLayout, "left", ListLayout.getLeft(), ListLayout.getLeft() - 336);
x.setDuration(500);
x.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
View ListLayout = findViewById(R.id.fragment_list_container);
Log.d(TAG, "ListLayout x after move completed = " + ListLayout.getLeft());
}
});
x.start();
All good to this point.
However if I select another item from the list (list should not move this time so animation not called) when the gesture up is detected and the list invalidated it reverts to it’s original position?
If I getLeft before and after the initial animated move it returns the correct positions.
Any help or insight gratefully received,
Slip
For those that run into this problem it was simply because I was using “left” rather than translating the value.
I ended up compacting everything and using the new feature