ChenLittlePing / RecyclerCoverFlow

使用RecyclerView,自定义LayoutManager实现旋转木马相册效果
Apache License 2.0
833 stars 152 forks source link

CoverFlowLayoutManger中mSlectPositon计算存在bug #18

Open WhySRZ opened 4 years ago

WhySRZ commented 4 years ago

CoverFlowLayoutManger中mSlectPositon计算存在bug private void onSelectedCallBack() { mSelectPosition = Math.round (mOffsetAll / getIntervalDistance()); mSelectPosition = Math.abs(mSelectPosition % getItemCount()); if (mSelectedListener != null && mSelectPosition != mLastSelectPosition) { mSelectedListener.onItemSelected(mSelectPosition); } mLastSelectPosition = mSelectPosition; }

当mSelectPositon为负数时,会出现位置对不上,比如我有5个条目,当mSelectPosition为-6,Math.abs(mSelectPosition % getItemCount())计算结果为1,但事实对应的条目应该是4,当mSelectPosition为负数时正确的位置计算应该为应为 mSelectPosition = 条目个数和(list.size())+mSelectPosition % getItemCount()

zt80hou commented 2 years ago

list.size())+mSelectPosition % getItemCount()

牛逼,但是还有一种偶现情况 为负数的时候,计算完mSelectPosition =getItemCount(),此时应该置位0,还需要再优化。 image

zt80hou commented 2 years ago

/**