showAdsInGridView function
dynamic
showAdsInGridView({
- required RxList list,
- required int crossAxisCount,
- required int adsDistance,
- required IndexedWidgetBuilder itemBuilder,
- bool isNativeAds = true,
- AdSize bannerSize = AdSize.leaderboard,
- Size? nativeAdSize,
- Color nativeAdbackgroundColor = const Color(0xFFFFFFFF),
- Color nativeAdborderColor = const Color(0xFFFFFFFF),
- double nativeAdborderwidth = 1.0,
- BorderStyle nativeAdborderstyle = BorderStyle.solid,
- double nativeAdborderRadius = 12,
- double mainAxisSpacing = 0.0,
- double crossAxisSpacing = 0.0,
- EdgeInsetsGeometry? widgetMargin,
- required GetxController controller,
Implementation
showAdsInGridView(
{required RxList<dynamic> list,
required int crossAxisCount,
required int adsDistance,
required IndexedWidgetBuilder itemBuilder,
bool isNativeAds = true,
AdSize bannerSize = AdSize.leaderboard,
Size? nativeAdSize,
Color nativeAdbackgroundColor = const Color(0xFFFFFFFF),
Color nativeAdborderColor = const Color(0xFFFFFFFF),
double nativeAdborderwidth = 1.0,
BorderStyle nativeAdborderstyle = BorderStyle.solid,
double nativeAdborderRadius = 12,
double mainAxisSpacing = 0.0,
double crossAxisSpacing = 0.0,
EdgeInsetsGeometry? widgetMargin,
required GetxController controller}) {
final distance = (adsDistance * crossAxisCount) + 1;
_setAdsinList(list, distance);
return Obx(() => StaggeredGridView.countBuilder(
crossAxisCount: crossAxisCount,
itemCount: list.length,
itemBuilder: (BuildContext context, int index) {
if (list[index] == null) {
if (isNativeAds) {
if (nativeAdSize != null) {
showMediumNativeAds(
backgroundColor: nativeAdbackgroundColor,
borderColor: nativeAdborderColor,
borderRadius: nativeAdborderRadius,
widgetMargin: widgetMargin,
borderstyle: nativeAdborderstyle,
borderwidth: nativeAdborderwidth,
size: nativeAdSize,
onAdLoadedCallback: (nativeAd) {
list[index] = nativeAd;
controller.refresh();
});
} else {
showMediumNativeAds(
backgroundColor: nativeAdbackgroundColor,
borderColor: nativeAdborderColor,
borderRadius: nativeAdborderRadius,
borderstyle: nativeAdborderstyle,
borderwidth: nativeAdborderwidth,
onAdLoadedCallback: (nativeAd) {
list[index] = nativeAd;
controller.refresh();
});
}
} else {
showBannerAds(
size: bannerSize,
onAdLoadedCallback: (bannerAd) {
list[index] = bannerAd;
controller.refresh();
});
}
return Container(height: 0);
} else if (list[index] is Widget) {
return list[index];
}
return itemBuilder(context, index);
},
staggeredTileBuilder: (int index) => StaggeredTile.count(
((list[index] == null) ||
(list[index] != null && list[index] is Widget))
? crossAxisCount
: 1,
1),
mainAxisSpacing: mainAxisSpacing,
crossAxisSpacing: crossAxisSpacing,
));
}