diff --git a/vlayout/src/main/java/com/alibaba/android/vlayout/layout/GridLayoutHelper.java b/vlayout/src/main/java/com/alibaba/android/vlayout/layout/GridLayoutHelper.java index 1bb49446..e0e1ab62 100644 --- a/vlayout/src/main/java/com/alibaba/android/vlayout/layout/GridLayoutHelper.java +++ b/vlayout/src/main/java/com/alibaba/android/vlayout/layout/GridLayoutHelper.java @@ -24,20 +24,20 @@ package com.alibaba.android.vlayout.layout; -import com.alibaba.android.vlayout.LayoutManagerHelper; -import com.alibaba.android.vlayout.OrientationHelperEx; -import com.alibaba.android.vlayout.VirtualLayoutManager; -import com.alibaba.android.vlayout.VirtualLayoutManager.LayoutParams; -import com.alibaba.android.vlayout.VirtualLayoutManager.LayoutStateWrapper; - import android.support.annotation.NonNull; -import android.support.v7.widget.OrientationHelper; import android.support.v7.widget.RecyclerView; +import android.util.LayoutDirection; import android.util.Log; import android.util.SparseIntArray; import android.view.View; import android.widget.TextView; +import com.alibaba.android.vlayout.LayoutManagerHelper; +import com.alibaba.android.vlayout.OrientationHelperEx; +import com.alibaba.android.vlayout.VirtualLayoutManager; +import com.alibaba.android.vlayout.VirtualLayoutManager.LayoutParams; +import com.alibaba.android.vlayout.VirtualLayoutManager.LayoutStateWrapper; + import java.util.Arrays; import static android.support.v7.widget.LinearLayoutManager.VERTICAL; @@ -511,7 +511,13 @@ public void layoutViews(RecyclerView.Recycler recycler, RecyclerView.State state for (int i = 0; i < count; i++) { View view = mSet[i]; - final int index = mSpanIndices[i]; + int index = mSpanIndices[i]; + //镜像环境,条目数据已镜像,但一行不满mSpanCount的条目位置没有镜像,需要移动mSpanCount - count位。 + if (layoutState.getLayoutDirection() == LayoutDirection.RTL) { + if (count != mSpanCount) { + index = index + mSpanCount - count; + } + } LayoutParams params = (LayoutParams) view.getLayoutParams(); if (layoutInVertical) {