Flutter 颤振\u本地\u admob预加载广告

Flutter 颤振\u本地\u admob预加载广告,flutter,admob,Flutter,Admob,是否可以预加载本机颤振admob ads,例如在initState中 我正在尝试在一个ListView.builder()中使用广告,其中填充了与用户相关的内容以及介于两者之间的广告。但是广告加载得太晚了,因此用户可以在滚动列表视图时看到屏幕上出现的微调器 示例代码(来自): @覆盖 小部件构建(构建上下文){ 返回材料PP( 家:脚手架( appBar:appBar( 标题:const Text(“插件示例应用程序”), ), 正文:ListView( 儿童:[ 容器( 边距:仅限边缘组(底部

是否可以预加载本机颤振admob ads,例如在initState中

我正在尝试在一个
ListView.builder()
中使用广告,其中填充了与用户相关的内容以及介于两者之间的广告。但是广告加载得太晚了,因此用户可以在滚动
列表视图时看到屏幕上出现的微调器

示例代码(来自):

@覆盖
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
appBar:appBar(
标题:const Text(“插件示例应用程序”),
),
正文:ListView(
儿童:[
容器(
边距:仅限边缘组(底部:20.0),
高度:200.0,
颜色:颜色。绿色,
),
容器(
边距:仅限边缘组(底部:20.0),
高度:200.0,
颜色:颜色。绿色,
),
容器(
边距:仅限边缘组(底部:20.0),
高度:200.0,
颜色:颜色。绿色,
),

NativeAdmobBannerView(//Flatter_native_admob插件的创建者确实更新了插件。 您现在可以等待加载广告,然后再进行渲染。有关详细信息,请查看发布页面:

导入'dart:async';
进口“包装:颤振/材料.省道”;
导入“包:flatter_native_admob/flatter_native_admob.dart”;
导入“包:flatter_native_admob/native_admob_controller.dart”;
类MyApp扩展了StatefulWidget{
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
静态常数_adUnitID=“”;
最终_nativeAdController=NativeAdmobController();
双倍高度=0;
流动认购(流动认购);;
@凌驾
void initState(){
_订阅=\u nativeAdController.stateChanged.listen(\u onStateChanged);
super.initState();
}
@凌驾
无效处置(){
_订阅。取消();
_nativeAdController.dispose();
super.dispose();
}
无效状态已更改(AdLoadState状态){
开关(状态){
案例AdLoadState.loading:
设置状态(){
_高度=0;
});
打破
案例AdLoadState.loadCompleted:
设置状态(){
_高度=330;
});
打破
违约:
打破
}
}
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
appBar:appBar(
标题:const Text(“插件示例应用程序”),
),
正文:ListView(
儿童:[
容器(
边距:仅限边缘组(底部:20.0),
高度:200.0,
颜色:颜色。绿色,
),
容器(
边距:仅限边缘组(底部:20.0),
高度:200.0,
颜色:颜色。绿色,
),
容器(
边距:仅限边缘组(底部:20.0),
高度:200.0,
颜色:颜色。绿色,
),
容器(
高度:_高度,
填充:边缘设置。全部(10),
边距:仅限边缘组(底部:20.0),
儿童:NativeAdmob(
//您的广告单元id
adUnitID:_adUnitID,
控制器:_nativeAdController,
//处于加载状态时不显示加载小部件
正在加载:容器(),
),
),
容器(
边距:仅限边缘组(底部:20.0),
高度:200.0,
颜色:颜色。绿色,
),
容器(
边距:仅限边缘组(底部:20.0),
高度:200.0,
颜色:颜色。绿色,
),
容器(
边距:仅限边缘组(底部:20.0),
高度:200.0,
颜色:颜色。绿色,
),
],
),
),
);
}
}

Flatter\u native\u admob插件的创建者确实更新了该插件。 您现在可以等待加载广告,然后再进行渲染。有关详细信息,请查看发布页面:

导入'dart:async';
进口“包装:颤振/材料.省道”;
导入“包:flatter_native_admob/flatter_native_admob.dart”;
导入“包:flatter_native_admob/native_admob_controller.dart”;
类MyApp扩展了StatefulWidget{
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
静态常数_adUnitID=“”;
最终_nativeAdController=NativeAdmobController();
双倍高度=0;
流动认购(流动认购);;
@凌驾
void initState(){
_订阅=\u nativeAdController.stateChanged.listen(\u onStateChanged);
super.initState();
}
@凌驾
无效处置(){
_订阅。取消();
_nativeAdController.dispose();
super.dispose();
}
无效状态已更改(AdLoadState状态){
开关(状态){
案例AdLoadState.loading:
设置状态(){
_高度=0;
});
打破
案例AdLoadState.loadCompleted:
设置状态(){
_高度=330;
});
打破
违约:
打破
}
}
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
appBar:appBar(
标题:const Text(“插件示例应用程序”),
),
正文:ListView(
儿童:[
容器(
边距:仅限边缘组(底部:20.0),
高度:200.0,
颜色:颜色。绿色,
),
容器(
边距:仅限边缘组(底部:20.0),
高度:200.0,
颜色:颜色。绿色,
),
容器(
边距:仅限边缘组(底部:20.0),
高度:200.0,
颜色:颜色。绿色,
),
容器(
高度:_高度,
填充:边缘设置。全部(10),
@override
Widget build(BuildContext context) {
return MaterialApp(
  home: Scaffold(
    appBar: AppBar(
      title: const Text('Plugin example app'),
    ),
    body: ListView(
      children: <Widget>[
        Container(
          margin: EdgeInsets.only(bottom: 20.0),
          height: 200.0,
          color: Colors.green,
        ),
        Container(
          margin: EdgeInsets.only(bottom: 20.0),
          height: 200.0,
          color: Colors.green,
        ),
        Container(
          margin: EdgeInsets.only(bottom: 20.0),
          height: 200.0,
          color: Colors.green,
        ),
        NativeAdmobBannerView(                // <---- preload this ad
          adUnitID: "<Your ad unit ID>",
          style: BannerStyle.dark, // enum dark or light
          showMedia: true, // whether to show media view or not
          contentPadding: EdgeInsets.all(10), // content padding
          onCreate: (controller) {
            controller.setStyle(BannerStyle.light); // Dynamic update style
          },
        ),
        Container(
          margin: EdgeInsets.only(bottom: 20.0),
          height: 200.0,
          color: Colors.green,
        ),
        Container(
          margin: EdgeInsets.only(bottom: 20.0),
          height: 200.0,
          color: Colors.green,
        ),
        Container(
          margin: EdgeInsets.only(bottom: 20.0),
          height: 200.0,
          color: Colors.green,
        ),
      ],
    ),
  ),
);
}
import 'dart:async';

import 'package:flutter/material.dart';
import 'package:flutter_native_admob/flutter_native_admob.dart';
import 'package:flutter_native_admob/native_admob_controller.dart';

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  static const _adUnitID = "<Your ad unit ID>";

  final _nativeAdController = NativeAdmobController();
  double _height = 0;

  StreamSubscription _subscription;

  @override
  void initState() {
    _subscription = _nativeAdController.stateChanged.listen(_onStateChanged);
    super.initState();
  }

  @override
  void dispose() {
    _subscription.cancel();
    _nativeAdController.dispose();
    super.dispose();
  }

  void _onStateChanged(AdLoadState state) {
    switch (state) {
      case AdLoadState.loading:
        setState(() {
          _height = 0;
        });
        break;

      case AdLoadState.loadCompleted:
        setState(() {
          _height = 330;
        });
        break;

      default:
        break;
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: ListView(
          children: <Widget>[
            Container(
              margin: EdgeInsets.only(bottom: 20.0),
              height: 200.0,
              color: Colors.green,
            ),
            Container(
              margin: EdgeInsets.only(bottom: 20.0),
              height: 200.0,
              color: Colors.green,
            ),
            Container(
              margin: EdgeInsets.only(bottom: 20.0),
              height: 200.0,
              color: Colors.green,
            ),
            Container(
              height: _height,
              padding: EdgeInsets.all(10),
              margin: EdgeInsets.only(bottom: 20.0),
              child: NativeAdmob(
                // Your ad unit id
                adUnitID: _adUnitID,
                controller: _nativeAdController,

                // Don't show loading widget when in loading state
                loading: Container(),
              ),
            ),
            Container(
              margin: EdgeInsets.only(bottom: 20.0),
              height: 200.0,
              color: Colors.green,
            ),
            Container(
              margin: EdgeInsets.only(bottom: 20.0),
              height: 200.0,
              color: Colors.green,
            ),
            Container(
              margin: EdgeInsets.only(bottom: 20.0),
              height: 200.0,
              color: Colors.green,
            ),
          ],
        ),
      ),
    );
  }
}
Opacity(opacity: 0, child: NativeAdmob(
                    // Your ad unit id
                    adUnitID: _adUnitID,
                    controller: _nativeAdController,
                    loading: Container(),
                  ),
                ),
_nativeAdController.reloadAd(forceRefresh: true, numberAds: 1);