buildItem method

Widget buildItem(
  1. BuildContext context,
  2. int idx,
  3. T item,
  4. Animation<double> animation,
)

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);
}