我在片段容器中有一个listview。
列表中的每个视图都有一个手势检测器,在手势上使列表无效以进行重绘。
在项目选择之后,我将片段容器设置为屏幕的另一部分
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();
一切都很好。
但是,如果我从列表中选择了另一个项目(此时列表不应移动,因此动画未被调用),当检测到手势并且列表无效时,它会恢复到原始位置?
如果我在初始动画移动之前和之后获得左移,则返回正确的位置。
感激地收到任何帮助或见解, 滑
答案 0 :(得分:0)
对于那些遇到这个问题的人来说,这仅仅是因为我使用“左”而不是翻译价值。
我最终压缩了所有内容并使用了新功能
mLayout.animate().setDuration(ANIMATE_TIME_MILLIS).translationXBy(ANIMATE_MOVE_DISTANCE);