Hi.
I've been trying to implement this package, but im facing some weird behaviour.
1st: Banner ads reloads every x time.
This is the code i have:
class SymbolsPage extends StatefulWidget {
@override
_SymbolsPageState createState() => _SymbolsPageState();
}
class _SymbolsPageState extends State<SymbolsPage> {
final hc = Get.put(HomeController());
final ac = Get.find<AdmobController>();
final TextEditingController nameController = TextEditingController();
Logger logger = Logger();
final bannerController = BannerAdController();
@override
void initState() {
super.initState();
bannerController.load();
bannerController.onEvent.listen((e) {
final event = e.keys.first;
switch (event) {
case BannerAdEvent.loading:
logger.i('BannerAdEvent: loading');
break;
case BannerAdEvent.loaded:
logger.i('BannerAdEvent: loaded');
break;
case BannerAdEvent.loadFailed:
final errorCode = e.values.first;
logger.i('BannerAdEvent: loadFailed $errorCode');
break;
case BannerAdEvent.impression:
logger.i('BannerAdEvent: ad rendered');
break;
default:
break;
}
});
}
@override
void dispose() {
super.dispose();
bannerController.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.yellow[800],
appBar: AppBar(
title: Text('name'),
backgroundColor: appThemeData.primaryColor,
),
body: GetBuilder<HomeController>(
builder: (_) => Column(
children: [
Container(
margin: EdgeInsets.only(top: 30, left: 18, right: 18),
child: CustomSearchText(
text: hc.nickName,
enable: true,
callback: () {
nameController.text = hc.nickName;
TextSelection.fromPosition(
TextPosition(offset: nameController.text.length),
);
// TODO: Fix bug when generating new nickname and does not change in textbox if focus is on
},
controller: nameController,
callback2: (text) {
TextSelection previousSelection = nameController.selection;
nameController.selection = previousSelection;
logger.v("${nameController.selection.start}");
_.changeNickName(text);
},
),
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
FlatButton.icon(
icon: Icon(Icons.copy_rounded),
label: Text('copy'.tr),
color: appThemeData.accentColor,
onPressed: () {
Clipboard.setData(ClipboardData(text: hc.nickName));
Get.snackbar("snackbar_download_title".tr,
"snackbar_download_message".tr,
snackPosition: SnackPosition.BOTTOM,
backgroundColor: appThemeData.accentColor);
},
)
],
),
const SizedBox(
height: 10,
),
Expanded(
child: GridView.builder(
padding: EdgeInsets.only(left: 8, right: 8),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
childAspectRatio: 3 / 2,
crossAxisSpacing: 20,
mainAxisSpacing: 20,
crossAxisCount: 4,
),
itemCount: symbols2.length,
itemBuilder: (BuildContext ctx, index) {
return GestureDetector(
onTap: () {
Get.snackbar("snackbar_download_title2".tr,
"snackbar_download_message".tr,
snackPosition: SnackPosition.BOTTOM,
backgroundColor: appThemeData.accentColor);
print("nameController.selection.start");
Clipboard.setData(
ClipboardData(text: symbols2[index].symbol));
},
child: Container(
alignment: Alignment.center,
child: Text(symbols2[index].symbol),
decoration: BoxDecoration(
color: appThemeData.accentColor,
borderRadius: BorderRadius.circular(15)),
),
);
}),
),
BannerAd(controller: bannerController, size: BannerSize.ADAPTIVE),
],
),
),
bottomNavigationBar: BottomBar(),
);
}
}
2nd: Ads are loaded as production ads or test ads(like random), even though i hardcoded them or, in this case, i retrieve them from my "MyAdmob.class" or wether i place them in the initialize method or straight in the widget's parameter the result is the same.
void main() async{
WidgetsFlutterBinding.ensureInitialized();
await MobileAds.initialize(
bannerAdUnitId: MyAdmob.getBannerAdId(),
interstitialAdUnitId: MyAdmob.getInterstitialAdId(),
appOpenAdUnitId: MyAdmob.getOpenAdId(),
);
Get.put(AdmobController());
// FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
// Admob.requestTrackingAuthorization();
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
// Locale myLocale;
@override
Widget build(BuildContext context) {
return GetMaterialApp(
title: 'names',
debugShowCheckedModeBanner: false,
theme: appThemeData,
translations: MyTransalations(),
locale: Get.deviceLocale,
home: SplashPage(),
// locale: Get.deviceLocale,
// translations: MyTransalations(),
);
}
}
invalid Banner Ad