-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 に答える