|
10 | 10 | import android.os.Bundle;
|
11 | 11 | import android.os.Parcel;
|
12 | 12 | import android.os.Parcelable;
|
| 13 | +import android.util.AttributeSet; |
| 14 | +import android.view.MotionEvent; |
| 15 | +import android.view.View; |
| 16 | +import android.view.ViewGroup; |
| 17 | + |
13 | 18 | import androidx.annotation.NonNull;
|
14 | 19 | import androidx.annotation.Nullable;
|
15 | 20 | import androidx.annotation.RequiresApi;
|
16 | 21 | import androidx.collection.SparseArrayCompat;
|
17 | 22 | import androidx.core.view.ViewCompat;
|
18 |
| -import android.util.AttributeSet; |
19 |
| -import android.view.MotionEvent; |
20 |
| -import android.view.View; |
21 |
| -import android.view.ViewGroup; |
22 | 23 |
|
23 | 24 | import java.util.ArrayList;
|
24 | 25 | import java.util.Collection;
|
@@ -867,31 +868,36 @@ private void addViewHolders(Rect filledArea) {
|
867 | 868 | int topRow = mManager.getRowByYWithShift(filledArea.top, mSettings.getCellMargin());
|
868 | 869 | int bottomRow = mManager.getRowByYWithShift(filledArea.bottom, mSettings.getCellMargin());
|
869 | 870 |
|
870 |
| - for (int i = topRow; i <= bottomRow; i++) { |
871 |
| - for (int j = leftColumn; j <= rightColumn; j++) { |
872 |
| - // item view holders |
873 |
| - ViewHolder viewHolder = mViewHolders.get(i, j); |
874 |
| - if (viewHolder == null && mAdapter != null) { |
875 |
| - addViewHolder(i, j, ViewHolderType.ITEM); |
876 |
| - } |
877 |
| - } |
| 871 | + int columnCount = mManager.getColumnCount(); |
| 872 | + if (columnCount > 0) { |
| 873 | + if (mManager.getRowCount() > 0) { |
| 874 | + for (int i = topRow; i <= bottomRow; i++) { |
| 875 | + for (int j = leftColumn; j <= rightColumn; j++) { |
| 876 | + // item view holders |
| 877 | + ViewHolder viewHolder = mViewHolders.get(i, j); |
| 878 | + if (viewHolder == null && mAdapter != null) { |
| 879 | + addViewHolder(i, j, ViewHolderType.ITEM); |
| 880 | + } |
| 881 | + } |
878 | 882 |
|
879 |
| - // row view headers holders |
880 |
| - ViewHolder viewHolder = mHeaderRowViewHolders.get(i); |
881 |
| - if (viewHolder == null && mAdapter != null) { |
882 |
| - addViewHolder(i, isRTL() ? mManager.getColumnCount() : 0, ViewHolderType.ROW_HEADER); |
883 |
| - } else if (viewHolder != null && mAdapter != null) { |
884 |
| - refreshHeaderRowViewHolder(viewHolder); |
| 883 | + // row view headers holders |
| 884 | + ViewHolder viewHolder = mHeaderRowViewHolders.get(i); |
| 885 | + if (viewHolder == null && mAdapter != null) { |
| 886 | + addViewHolder(i, isRTL() ? columnCount : 0, ViewHolderType.ROW_HEADER); |
| 887 | + } else if (viewHolder != null && mAdapter != null) { |
| 888 | + refreshHeaderRowViewHolder(viewHolder); |
| 889 | + } |
| 890 | + } |
885 | 891 | }
|
886 |
| - } |
887 | 892 |
|
888 |
| - for (int i = leftColumn; i <= rightColumn; i++) { |
889 |
| - // column view header holders |
890 |
| - ViewHolder viewHolder = mHeaderColumnViewHolders.get(i); |
891 |
| - if (viewHolder == null && mAdapter != null) { |
892 |
| - addViewHolder(0, i, ViewHolderType.COLUMN_HEADER); |
893 |
| - } else if (viewHolder != null && mAdapter != null) { |
894 |
| - refreshHeaderColumnViewHolder(viewHolder); |
| 893 | + for (int i = leftColumn; i <= rightColumn; i++) { |
| 894 | + // column view header holders |
| 895 | + ViewHolder viewHolder = mHeaderColumnViewHolders.get(i); |
| 896 | + if (viewHolder == null && mAdapter != null) { |
| 897 | + addViewHolder(0, i, ViewHolderType.COLUMN_HEADER); |
| 898 | + } else if (viewHolder != null && mAdapter != null) { |
| 899 | + refreshHeaderColumnViewHolder(viewHolder); |
| 900 | + } |
895 | 901 | }
|
896 | 902 | }
|
897 | 903 |
|
|
0 commit comments