I'm trying to write a code for an interstitial ad, my goal is to go to the selected page when the ad is closed.
But for the "onAdDismissedFullScreenContent" method I need to get to the "int index" value created in the builder.
Briefly i need to get this builder index for me to use in ad controller: var freeGames = freeGameTypeController.freeGames[index];
Ad Controller
class AdController extends GetxController {
FreeTypeController freeTypeController = Get.find<FreeTypeController>();
DealsTypeController dealsTypeController = Get.find<DealsTypeController>();
InterstitialAd? interstitialAd;
int adCounter = 0;
void onAdLoaded(InterstitialAd ad) {
interstitialAd = ad;
interstitialAd?.fullScreenContentCallback = FullScreenContentCallback(
onAdDismissedFullScreenContent: (ad) {
interstitialAd?.dispose();
initAd();
//todo: get index in freeGames
Get.to(
FreeGamesIndex(),
arguments: freeTypeController.freeGames,
);
},
onAdFailedToShowFullScreenContent: (ad, error) {
interstitialAd?.dispose();
initAd();
},
);
}
void initAd() {
InterstitialAd.load(
adUnitId: AdHelper.interstitialAdUnitId,
request: const AdRequest(),
adLoadCallback: InterstitialAdLoadCallback(
onAdLoaded: onAdLoaded,
onAdFailedToLoad: (error) {},
),
);
}
void getAd() {
if (adCounter % 10 == 0) {
interstitialAd?.show();
}
adCounter++;
}
@override
void onInit() {
initAd();
super.onInit();
}
}
Builder Page
GridView.builder(
shrinkWrap: true,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
childAspectRatio: (itemWidth / itemHeight),
crossAxisCount: 1,
),
scrollDirection: Axis.vertical,
itemCount: freeGameTypeController.freeGames.length,
itemBuilder: (BuildContext context, int index) {
//todo: need [index]
var freeGames = freeGameTypeController.freeGames[index];