首页 > 解决方案 > Flutter 导航器阻止我的 admob 广告展示

问题描述

如果我打开我的应用程序,显示启动画面,然后转到主主页,我的 admob 横幅不显示,并且整个应用程序在几秒钟后冻结。但是如果我直接从 到HomePage,绕过启动页面,横幅显示没有问题?

void main() {
  SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
    statusBarColor: Colors.transparent,
  ));
  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]).then((_) {
    Admob.initialize('ca-app-pub-3940256099942544~3347511713');
    runApp(MyApp());
  });
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      showPerformanceOverlay: false,
      // home: SplashPage(),//ads do not show
      home: HomePage(),//ads show no problem
    );
  }
}

class SplashPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.black,
      body: GestureDetector(
        onTap: () {
          Navigator.pushReplacement(// or with .push yields the same outcome
            context,
            MaterialPageRoute(
              builder: (context) {
                return HomePage();
              },
              settings: RouteSettings(isInitialRoute: true),
            ),
          );
        },
        child: Container(
          color: Colors.black,
          child: Center(
            child: Text('Splash page'),
          ),
        ),
      ),
    );
  }
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Text('Home Page'),
      bottomNavigationBar: Container(
        height: 60,
        child: Column(
          children: <Widget>[
            AdmobBanner(
              adUnitId: 'ca-app-pub-3940256099942544/6300978111',
              adSize: AdmobBannerSize.BANNER,
            ),
          ],
        ),
      ),
    );
  }
}

知道为什么会这样吗?某些东西没有从SplashPage直通到HomePage允许横幅显示。

标签: flutterdartadmob

解决方案


推荐阅读