setTranslationXを使用して、画面全体をスワイプしてビューをアニメーション化しようとしています。次に、しきい値-Xを渡した後、ビューに新しいRelativeLayout.RIGHT_OFを割り当てます。Android:setTranslationXビューのアンカーが変更された後にグリッチが発生する
私はその時点でアニメーションを止める(私がスワイプを続けているかどうかにかかわらず)、基本的にその新しいアンカーにロックします。
これは、問題は次のとおりです。突然、ビューがX位置を新しいアンカーの右に移動します。
私はsetTranslationX(0)を設定し、それは> =しきい値だとき、試してみたが、その後、私は、新しい0
に、いったん元の0に、ビューは二回/フラッシュをけいれん見ますそのダブルツイッチ/フラッシュを取り除くのが大好きですが、この時点ではどうなっているのでしょうか。
@Override
public void onChildDraw(Canvas c ... float dX) {
threshold = anchorView.getRight();
if (animate) {
if (dX >= 0) {
translationX = Math.min(dX, threshold);
if (dX >= threshold) {
translationX = 0; // (A) if I do this, then mainView flashs twice: original 0, then new 0
setToRightOf(mainView, anchorView);
mainView.invalidate(); // has no effect
}
} else {
translationX = 0;
}
// if I don't do (A), then mainView will suddenly jump to 2*threshold
mainView.setTranslationX(translationX);
return;
}
super.onChildDraw(c ... dX);
}