加载Admob / Firebase广告后,DayNight主题中的颜色变暗

我为我的应用程序使用Theme.AppCompat.DayNight.NoActionBar主题。 当我加载adMob interstital时,某些颜色会在“夜间”模式下被破坏(即在RecyclerView中)。

屏幕:

在此处输入图像描述

那些不正确的颜色来自“notnight”值。 当我关闭应用程序并再次运行它一切都没问题。 当我杀了应用程序时,我有同样的情况。

活动代码:

 public class MainActivity extends AppCompatActivity { static { AppCompatDelegate.setDefaultNightMode( AppCompatDelegate.MODE_NIGHT_AUTO); } private ArrayList 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"); } } } 

当我评论interstitialAd.loadAd(adRequest)一切正常。

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

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

执行此操作后我没有看到这个问题Application.oncreate()在这个特定的应用程序中的Application.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_- wAFY/ K50jClZcBAAJ