3

RecyclerView単一の item 、2 つの s に 2つのビューがあり、RelativeLayoutある時点で両方RelativeLayoutsを反転LayoutAして0 to 180います。それは完璧に機能しますが、画面にスペースがない場合 (例: の最後の項目)、このフリップを開始する前に、奇妙な効果が得られますLayoutB-180 to 0RecyclerView

気が狂う

   <set xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Rotate. -->
    <objectAnimator
            android:valueFrom="0"
            android:valueTo="180"
            android:propertyName="rotationY"
            android:interpolator="@android:interpolator/accelerate_decelerate"
            android:duration="1000" />

    <objectAnimator
            android:valueFrom="1.0"
            android:valueTo="0.0"
            android:propertyName="alpha"
            android:startOffset="0"
            android:duration="1000" />

</set>

フリップイン

 <set xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Rotate. -->
    <objectAnimator
            android:valueFrom="180"
            android:valueTo="0"
            android:propertyName="rotationY"
            android:interpolator="@android:interpolator/accelerate_decelerate"
            android:duration="1000" />

    <objectAnimator
            android:valueFrom="0.0"
            android:valueTo="1.0"
            android:propertyName="alpha"
            android:duration="1000"
            android:startOffset="0"/>
</set>

アダプターコード

    AnimatorSet setRightOut = (AnimatorSet) AnimatorInflater.loadAnimator
            (mContext, R.animator.flip_right_out);
    AnimatorSet setLeftIn = (AnimatorSet) AnimatorInflater.loadAnimator(mContext,
            R.animator.flip_left_in);

    setRightOut.setTarget(holder.layoutA);
    setRightOut.setDuration(1500);
    setLeftIn.setTarget(holder.layoutB);
    setLeftIn.setDuration(1500);
    setLeftIn.start();
    setRightOut.start();

scrollToPositionメソッドへの呼び出しを行っていませんが、logcatはこれを繰り返し出力します

ログキャット

  W/RecyclerView: RecyclerView does not support scrolling to an absolute position. Use scrollToPosition instead

これに対する修正はありますか?

4

0 に答える 0