List dataList = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10' , '11', '12', '13', '14', '15', '16', '17', '18' , '19', '20', '21', '22'];
List chunkList = [];
int chunkSize = 5;
for (var i = 0; i < dataList.length; i += chunkSize) {
    chunkList.add(dataList.sublist(i, i+chunkSize > dataList.length ? dataList.length : i + chunkSize));
  }
print(chunkList);
List<List<String>> _getListInList(List<String> data) {
    final chunks = <List<String>>[];
    final chunkSize = 5;

    for (var i = 0; i < data.length; i += chunkSize) {
      chunks.add(
        data.sublist(
          i,
          i + chunkSize > data.length ? data.length : i + chunkSize,
        ),
      );
    }

    return chunks;
  }

print(list.splitBeforeIndexed((i, _) => i % 5 == 0).toList());

List<String> dataList = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10' , '11', '12', '13', '14', '15', '16', '17', '18' , '19', '20', '21', '22'];
List<int> dataListLength = [5 , 7, 10];
List<List<String>> listList = [];
  int start = 0;
  for(var i in dataListLength){
    List<String> temp = [];
    for(int j=start; j<i+start; j++){
      temp.add(dataList[j]);
    }
    listList.add(temp);
    start += i;
  }
  print(listList);