showAdsInListView function

dynamic showAdsInListView({
  1. required int adsDistance,
  2. required IndexedWidgetBuilder itemBuilder,
  3. bool isNativeAds = true,
  4. Size? nativeAdSize,
  5. Color nativeAdbackgroundColor = const Color(0xFFFFFFFF),
  6. Color nativeAdborderColor = const Color(0xFFFFFFFF),
  7. double nativeAdborderwidth = 1.0,
  8. BorderStyle nativeAdborderstyle = BorderStyle.solid,
  9. double nativeAdborderRadius = 12,
  10. EdgeInsetsGeometry? widgetMargin,
  11. AdSize bannerSize = AdSize.leaderboard,
  12. required AdsController controller,
})

Implementation

showAdsInListView(
    {required int adsDistance,
    required IndexedWidgetBuilder itemBuilder,
    bool isNativeAds = true,
    Size? nativeAdSize,
    Color nativeAdbackgroundColor = const Color(0xFFFFFFFF),
    Color nativeAdborderColor = const Color(0xFFFFFFFF),
    double nativeAdborderwidth = 1.0,
    BorderStyle nativeAdborderstyle = BorderStyle.solid,
    double nativeAdborderRadius = 12,
    EdgeInsetsGeometry? widgetMargin,
    AdSize bannerSize = AdSize.leaderboard,
    required AdsController controller}) {
  _setAdsinList(controller.widgetlist, adsDistance);

  _onScrollEventStop(
      controller,
      adsDistance,
      isNativeAds,
      nativeAdSize,
      nativeAdbackgroundColor,
      nativeAdborderColor,
      nativeAdborderwidth,
      nativeAdborderstyle,
      nativeAdborderRadius,
      bannerSize,
      widgetMargin);

  return Obx(() => NotificationListener<ScrollNotification>(
        onNotification: (scrollNotification) {
          if (scrollNotification is ScrollStartNotification) {
            controller.isScroll.value = true;
          } else if (scrollNotification is ScrollUpdateNotification) {
            controller.isScroll.value = true;
          } else if (scrollNotification is ScrollEndNotification) {
            controller.isScroll.value = false;
            _onScrollEventStop(
                controller,
                adsDistance,
                isNativeAds,
                nativeAdSize,
                nativeAdbackgroundColor,
                nativeAdborderColor,
                nativeAdborderwidth,
                nativeAdborderstyle,
                nativeAdborderRadius,
                bannerSize,
                widgetMargin);
          } else {
            controller.isScroll.value = false;
            print(
                "Scroll is ------- ${controller.isScroll.value}  ${controller.currentIndex.value}");
          }
          return controller.isScroll.value;
        },
        child: ListView.separated(
            itemBuilder: itemBuilder,
            separatorBuilder: (context, index) {
              if (controller.widgetlist[index] is Widget) {
                return controller.widgetlist[index];
              }
              return Container(height: 0);
            },
            itemCount: controller.widgetlist.length),
      ));
}