-1

我在片段容器中有一个列表视图。

列表中的每个视图都有一个手势检测器,它在手势向上时会使列表无效以进行重绘。

选择项目后,我将片段容器动画到屏幕的另一部分

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();

到目前为止一切都很好。

但是,如果我从列表中选择另一个项目(这次列表不应移动,因此不会调用动画),当检测到向上手势并且列表无效时,它会恢复到原始位置吗?

如果我在初始动画移动之前和之后 getLeft 它将返回正确的位置。

感激地收到任何帮助或见解,Slip

4

1 回答 1

0

对于那些遇到这个问题的人来说,这仅仅是因为我使用的是“左”而不是翻译值。

我最终压缩了所有内容并使用了新功能

mLayout.animate().setDuration(ANIMATE_TIME_MILLIS).translationXBy(ANIMATE_MOVE_DISTANCE);
于 2012-11-19T00:04:42.677 回答