我的RecyclerView
单个 item 有两个视图,两个RelativeLayout
s,在某些时候我正在翻转两个视图RelativeLayouts
,我正在旋转LayoutA
from0 to 180
度数,同时我也在旋转LayoutB
from -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
有什么解决办法吗?