当前位置: 首页 > 知识库问答 >
问题:

加载Admob/Firebase广告后DayNight主题中的破碎颜色

轩辕瑞
2023-03-14

我使用主题。AppCompat。白天晚上。我的应用程序没有操作栏主题。当我加载adMob InterState时,一些颜色在“night”模式下(即在RecyclerView中)被破坏。

屏幕:

这些不正确的颜色来自“notnight”值。当我关闭应用程序并再次运行时,一切都很好。当我关闭应用程序时,我也遇到了同样的情况。

活动代码:

public class MainActivity extends AppCompatActivity {

    static {
        AppCompatDelegate.setDefaultNightMode(
                AppCompatDelegate.MODE_NIGHT_AUTO);
    }

    private ArrayList<String> planetList = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);


        setContentView(R.layout.activity_main);

        populateRecycler();

        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);

        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(layoutManager);

        PlanetAdapter adapter = new PlanetAdapter(planetList, getApplicationContext());
        recyclerView.setAdapter(adapter);

        InterstitialAd interstitialAd = new InterstitialAd(this);
        interstitialAd.setAdUnitId("ca-app-pub-543543543/543543543");
        AdRequest adRequest = new AdRequest.Builder().build();
        interstitialAd.loadAd(adRequest);
    }

    private void populateRecycler() {
        for (int i = 0; i < 20; i++) {
            planetList.add("TEST");
        }
    }

}

当我评论Interstitalad时。loadAd(adRequest)一切正常。

你可以在这里找到整个项目:github

共有1个答案

鲍向笛
2023-03-14

该问题可能是由重置UI模式引起的,可以通过手动实例化WebView来解决。

我没有看到这个问题(在这个特定应用程序中的应用程序.oncreate()):

    if (nightMode != AppCompatDelegate.MODE_NIGHT_NO) {
        Log.d(TAG, "Manually instantiating WebView to avoid night mode issue.");
        try {
            new WebView(getApplicationContext());
        } catch (Exception e) {
            Log.e(TAG, "Got exception while trying to instantiate WebView to avoid night mode issue. Ignoring problem.", e);
        }
    }
    AppCompatDelegate.setDefaultNightMode(nightMode);

资料来源:https://groups.google.com/forum/#!msg/google-admob-ads-sdk/OZzHq_2;-wAFY/K50jClZcBAAJ

 类似资料:
  • 我正试图加载Admob原生广告。以前(在应用程序更新之前)广告经常显示,但现在它们不显示了。我已经在下面发布了代码、xml和Logcat。 代码 洛克卡特

  • 我正在尝试在我的android应用程序中添加原生广告。但我不断收到错误未能加载带有错误代码3的广告。我已经在其他测试广告单元中尝试过,在这种情况下,我的代码运行正常,广告正在显示。但是当我尝试显示来自同一帐户的横幅广告时,我得到的错误代码为0。我无法从我的帐户显示任何类型的广告。 注意:-我在3天前创建了此帐户,并且在此中也启用和验证了计费。

  • 当尝试加载奖励广告时,我遇到以下错误: <代码> 加载测试广告有效,但当尝试显示真实广告时,它会说:请求错误:没有广告要显示。 苹果不会允许我的应用出现在应用商店中,因为广告不起作用。 我还没有设法解决这个问题,因为这篇文章没有帮助。 另外,我还没有在我的代码中使用这个:<代码>。addTestDevice()和我的Admob帐户已经超过24小时了(可能已经有很多年了)。 有办法解决这个问题吗?

  • 广告只有在应用程序启动前启用WI-FI时才显示(如果在应用程序会话期间启用WI-FI时不会显示)。如何在可能的时候加载Admob广告?我相信,这和AdListener有关。我的当前代码:

  • 我试图在我的应用程序上添加原生admob广告,当我用原生Advanced的示例广告单元id测试时:CA-app-pub-3940256099942544/2247696110,它工作,我在我的应用程序上得到广告,但当我尝试我真正的原生广告id时,它不工作它不能加载广告,它显示空白屏幕,我向谷歌播放市场发布应用程序,我等了3天,但它没有加载,我从广告中得到以下警告。我怎样才能解决这个问题?请帮帮我,

  • 在用户关闭间隙广告后,我将在我的应用程序中添加奖励广告,它将显示一个屏幕,显示之前输入的文本,并在下方有一个显示奖励广告的视频按钮(我处于测试阶段,因此我还不包括任何奖励项目,只想先显示视频广告)。 当我使用Toast小部件来识别广告是否已加载时,我意识到广告已加载(显示“onRewardedAdLoade”文本)。但是,当我单击观看视频按钮时,似乎没有调用show RewardedVideo()