interleave

Last updated:

0 purchases

interleave Image
interleave Images
Add to Cart

Description:

interleave

Interleave #
A library that helps to interleave lists, being possible to personalize the steps and offset.





How to Use #
# add this line to your dependencies
interleave: ^0.1.0
copied to clipboard
import 'package:interleave/interleave.dart';
copied to clipboard
You can create a instance of Interleave with the following parameters:



property
description
type
default




step
Steps to interleave your items.
int
required


offset
Offset to begin interleaving, if not set, it will be equal step.
int?
same as step


itemLength
Quantity of items
int
required


interleavingItemLength
Quantity of items to interleave
int
required


itemBuilder
Item builder method
Widget (BuildContext, int, int)
required


interleavingItemBuilder
Interleaving item builder method
Widget (BuildContext, int, int)
required







method
description




T item(int index)
Get item at index from a interleaved list


List<T> generate()
Generate a interleaved list




Its also possible to get item and interleaved list with Interleave static methods:



method
description




List<T> Interleave.generateFromList
Generate a interleaved list passing two lists as param


List<T> Interleave.generateFromBuilder
Generate a interleaved list passing item builders as param


T Interleave.itemFromList
Get item at index passing two lists as param


T Interleave.itemFromBuilder
Get item at index passing item builders as param



Usage Examples #
Generate a interleaved List<T> calling generate method:

final list = List.generate(10, (index) => index);
final anotherList = List.generate(3, (index) => index);

final interleavedList = Interleave(
step: 2,
offset: 3,
itemLength: list.length,
interleavingItemLength: anotherList.length,
itemBuilder: (interleaveIndex, listIndex) {
return 'a${list[interleaveIndex]}';
},
interleavingItemBuilder: (interleaveIndex, listIndex) {
return 'b${anotherList[interleaveIndex]}';
},
).generate();
print('list: $interleavedList'); // list: [a0, a1, a2, b0, a3, a4, b1, a5, a6, b2, a7, a8, a9]

copied to clipboard

Get item from index, calling item method:

final list = List.generate(10, (index) => index);
final anotherList = List.generate(3, (index) => index);

final item = Interleave(
step: 2,
offset: 3,
itemLength: list.length,
interleavingItemLength: anotherList.length,
itemBuilder: (interleaveIndex, listIndex) {
return 'a${list[interleaveIndex]}';
},
interleavingItemBuilder: (interleaveIndex, listIndex) {
return 'b${anotherList[interleaveIndex]}';
},
).item(3);
print('item: $item'); // item: b0

copied to clipboard

Interleave.generateFromList:

final list = List.generate(10, (index) => index);
final anotherList = List.generate(3, (index) => index);

final interleavedList = Interleave.generateFromList(
step: 2,
offset: 3,
itemList: list,
interleavingList: anotherList,
);
print('list: $interleavedList'); // list: [0, 1, 2, 0, 3, 4, 1, 5, 6, 2, 7, 8, 9]

copied to clipboard

Interleave.generateFromBuilder:

final list = List.generate(10, (index) => index);
final anotherList = List.generate(3, (index) => index);

final interleavedList = Interleave.generateFromBuilder(
step: 2,
offset: 3,
itemLength: list.length,
interleavingItemLength: anotherList.length,
itemBuilder: (interleaveIndex, listIndex) {
return 'a${list[interleaveIndex]}';
},
interleavingItemBuilder: (interleaveIndex, listIndex) {
return 'b${anotherList[interleaveIndex]}';
},
);
print('list: $interleavedList'); // list: [a0, a1, a2, b0, a3, a4, b1, a5, a6, b2, a7, a8, a9]

copied to clipboard

Interleave.itemFromList:

final list = List.generate(10, (index) => index);
final anotherList = List.generate(3, (index) => index);

final item = Interleave.itemFromList(
step: 2,
offset: 3,
itemList: list,
interleavingList: anotherList,
index: 3,
);
print('item: $item'); // 0

copied to clipboard

Interleave.itemFromBuilder:

final list = List.generate(10, (index) => index);
final anotherList = List.generate(3, (index) => index);

final item = Interleave.itemFromBuilder(
step: 2,
offset: 3,
itemLength: list.length,
interleavingItemLength: anotherList.length,
itemBuilder: (interleaveIndex, listIndex) {
return 'a${list[interleaveIndex]}';
},
interleavingItemBuilder: (interleaveIndex, listIndex) {
return 'b${anotherList[interleaveIndex]}';
},
index: 3,
);
print('item: $item'); // b0

copied to clipboard

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.