Skip to content

Commit

Permalink
修复当数据过多的时候且处于分页模式下,调用notifiChange添加所有Item的bug
Browse files Browse the repository at this point in the history
  • Loading branch information
Ellen2018 committed Jul 11, 2019
1 parent edb6a18 commit 6b566c5
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public int getTableColumn() {

@Override
public int getTableRow() {
return 220;
return 22000;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ public class PagingMode {
private int addSize;

private int loadBeforeSize = 1;
/**
* 记录数据总个数,防止notifiChange增加bug
*/
private int currentSize = 0;

public int getLoadBeforeSize() {
return loadBeforeSize;
Expand Down Expand Up @@ -55,4 +59,12 @@ public int getAddSize() {
public void setAddSize(int addSize) {
this.addSize = addSize;
}

public int getCurrentSize() {
return currentSize;
}

public void setCurrentSize(int currentSize) {
this.currentSize = currentSize;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -429,6 +429,7 @@ public void onClick(View v) {
int itemCountCopy = 0;
if (pagingMode != null) {
if (pagingMode.isVer()) {
pagingMode.setCurrentSize(tableViewAdapter.getTableRow());
if(tableViewAdapter.getTableRow()<=pagingMode.getFirstSize()){
pagingMode.setFirstSize(tableViewAdapter.getTableRow());
}
Expand All @@ -438,6 +439,7 @@ public void onClick(View v) {
getGridLayoutY().setRowCount(pagingMode.getFirstSize());
getGridLayoutX().setColumnCount(tableViewAdapter.getTableColumn());
} else {
pagingMode.setCurrentSize(tableViewAdapter.getTableColumn());
if(tableViewAdapter.getTableColumn()<=pagingMode.getFirstSize()){
pagingMode.setFirstSize(tableViewAdapter.getTableColumn());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import android.view.View;

import com.ellen.tableview.supertableview.PagingMode;
import com.ellen.tableview.supertableview.adapter.TableViewAdapter;

import java.util.ArrayList;
Expand Down Expand Up @@ -131,10 +132,15 @@ public void notifyChanged() {
removeColumn();
}
} else {
//增加
int columnNumber = getTableView().getColumnNumber();
for (int i = 0; i < getTableColumn() - columnNumber; i++) {
addColumn();
//增加->预加载模式不要添加,那么该如何做呢?
PagingMode pagingMode = getTableView().getPagingMode();
if(pagingMode != null){
//如何当前处于分页模式,那么可以不做任何逻辑处理
}else {
int columnNumber = getTableView().getColumnNumber();
for (int i = 0; i < getTableColumn() - columnNumber; i++) {
addColumn();
}
}
}
}
Expand All @@ -143,9 +149,14 @@ public void notifyChanged() {
//存在增加或者是删除
if (getTableRow() > getTableView().getRowNumber()) {
//增加
int rowNumber = getTableView().getRowNumber();
for (int i = 0; i < getTableRow() - rowNumber; i++) {
addRow();
PagingMode pagingMode = getTableView().getPagingMode();
if(pagingMode != null){
//如何当前处于分页模式,那么可以不做任何逻辑处理
}else {
int rowNumber = getTableView().getRowNumber();
for (int i = 0; i < getTableRow() - rowNumber; i++) {
addRow();
}
}
} else {
int rowNumber = getTableView().getRowNumber();
Expand Down

0 comments on commit 6b566c5

Please sign in to comment.