Annunci posizionati all'interno di contenuti scorrevoli, visualizzati dinamicamente Stendardo o OutStream formati basati sulla posizione dell'elemento all'interno della vista di scorrimento.
Mostra l'annuncio.
Per visualizzare un annuncio in ListViewwidget, o in qualsiasi altro widget scorrevole di Flutter con indice usa R89ScorrimentoInfinitoAnnuncio widget, aggiungendolo all'elemento scorrevole
Widget _buildItem(context, index) => Card(
child: Column(
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Text("Item index $index"),
),
Center(
child: R89InfiniteScrollAd(
itemIndex: index, infiniteScrollId: infiniteScrollId),
)
],
),
);
R89ScorrimentoInfinitoAnnuncio ha due parametri obbligatori
-
indiceElementola posizione dell'articolo inListView -
infiniteScrollIdilR89SDKID di pergamena generato, che è condiviso tra gli elementi figlio dello stessoListView.
Ecco come generare infiniteScrollId
int infiniteScrollId = R89SDK.adFactory.createInfiniteScroll(
configurationId: ConfigConstants.infiniteScrollTestR89ConfigId);
Tutto qui, trova il esempio completo in fondo a questa pagina.
Eventi del Ciclo di Vita
Per ricevere gli eventi del ciclo di vita per un R89ScorrimentoInfinitoAnnuncio, fornire BannerEventListener a R89ScorrimentoInfinitoAnnuncio tramite callback del ciclo di vita dettagli sul parametro. BannerEventListener può essere trovato nel Riferimento.
R89InfiniteScrollAd(
itemIndex: index,
infiniteScrollId: infiniteScrollId,
lifecycleCallbacks: BannerEventListener.callbacks(
onLoadedCallback: () {},
onImpressionCallback: () {},
onLayoutChangeCallback: (width, height) {},
onClickCallback: () {},
onOpenCallback: () {},
onCloseCallback: () {},
onFailedToLoadCallback: (error) {},
))
Per ricevere gli eventi del ciclo di vita per lo scorrimento generale, fornire InfiniteScrollEventListener a R89SDK.adFactory.createInfiniteScroll tramite callback del ciclo di vita dettagli sul parametro. InfiniteScrollEventListener può essere trovato nel Riferimento.
final int infiniteScrollId = R89SDK.adFactory.createInfiniteScroll(
configurationId: ConfigConstants.infiniteScrollTestR89ConfigId,
lifecycleCallbacks: InfiniteScrollEventListener.callbacks(
onRollCallback: (itemIdInData) {},
onRollFailedCallback: (itemIdInData) {},
onAdItemCreatedCallback: (adapterId, probability) {},
onAdItemFailedToCreateCallback: (message) {},
onAdItemLoadedCallback: (itemIdInData) {},
onAdItemFailedToLoadCallback: (itemIdInData, message) {},
onAdItemImpressionCallback: (itemIdInData) {},
onAdItemClickCallback: (itemIdInData) {},
onAdItemOpenCallback: (itemIdInData) {},
onAdItemCloseCallback: (itemIdInData) {},
));
Esempio Completo.
import 'package:flutter/material.dart';
import 'package:playground/config_constants.dart';
import 'package:refinery89_monetize_app/r89_sdk.dart';
class ScrollPage extends StatefulWidget {
const ScrollPage({super.key});
@override
State createState() => _ScrollPageState();
}
class _ScrollPageState extends State {
final int infiniteScrollId = R89SDK.adFactory.createInfiniteScroll(
configurationId: ConfigConstants.infiniteScrollTestR89ConfigId);
@override
Widget build(BuildContext context) => ListView.builder(
itemCount: 500,
itemBuilder: (context, index) => _buildItem(context, index),
);
Widget _buildItem(context, index) => Card(
child: Column(
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Text("Item index $index"),
),
Center(
child: R89InfiniteScrollAd(
itemIndex: index, infiniteScrollId: infiniteScrollId),
)
],
),
);
}