3

我的RecyclerView单个 item 有两个视图,两个RelativeLayouts,在某些时候我正在翻转两个视图RelativeLayouts,我正在旋转LayoutAfrom0 to 180度数,同时我也在旋转LayoutBfrom -180 to 0,所以会有一种翻转的感觉。它工作得很好,但是当屏幕上没有空间时(例如:对于 的最后一项RecyclerView),我会得到奇怪的效果,在开始这个翻转之前动画 LayoutB(最初是隐藏的)展开并隐藏然后动画开始

转出

   <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