buildItem method
Implementation
Widget buildItem(
BuildContext context, int idx, T item, Animation<double> animation) {
final innerItemBuilder = (BuildContext context) {
final item = Lists.getOrNull(trackedList, idx);
if (item == null) return emptyBox;
final itemTile = itemBuilder(context, item, idx, animation);
final itemTileWithSwipes = hasSwipeActions
? Slidable(
closeOnScroll: true,
// actionExtentRatio: 0.20,
// showAllActionsThreshold: 0.3,
child: itemTile,
// actions: [
// ...widget.primarySwipeActions
// .map((swipeBuilder) => swipeBuilder(context, item)),
// ],
// secondaryActions: [
// ...widget.secondarySwipeActions
// .map((swipeBuilder) => swipeBuilder(context, item)),
// ],
endActionPane: ActionPane(
motion: BehindMotion(),
children: [],
),
)
: itemTile;
if (idx > 0 && widget.showDividers) {
return Container(
child: itemTileWithSwipes,
decoration:
BoxDecoration(border: Border(top: SunnyDeco.borderSideLight)),
);
} else {
return itemTileWithSwipes;
}
};
return useStateTracker
? SunnyListItem<T>(
onInit: (state) {
_window[idx] = state;
},
onDispose: (state) {
_window.remove(idx);
},
key: buildKey(idx, item),
list: trackedList,
listId: widget.id,
index: idx,
itemBuilder: innerItemBuilder,
)
: innerItemBuilder(context);
}