2017-05-17 1 views
3

私はTheme.AppCompat.DayNight.NoActionBarテーマを自分のアプリに使用しています。 adMobインターステートを読み込むと、「夜間」モード(つまりRecyclerView)でいくつかの色が壊れます。DayNightテーマの壊れた色Admob/Firebase広告を読み込んだ

画面:

enter image description here

これらの間違った色は "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"); 
     } 
    } 

} 

私はinterstitialAd.loadAd(adRequest)すべてがOKであるコメント。これが唯一のアンドロイド7に表示されます github

答えて

0

:あなたはここにプロジェクト全体を見つけることができます

?おそらくAdMobライブラリの既知のバグです。あなたはここでそれについての詳細を読むことができます:

https://groups.google.com/forum/#!topic/google-admob-ads-sdk/OZzHq_-wAFY

が、私はこのスレッドであなたのgithubのプロジェクトへのリンクを掲載しました。

"UiModeManager.setNightMode(UiModeManager.MODE_NIGHT_YES)"で夜間モードをグローバルに設定することが唯一の回避策ですが、これはステータスバーのいくつかのデバイスでステータスバーが暗くなっているという別の問題を引き起こします。それ。

2

この問題は、WebViewがUIモードをリセットしたことが原因と考えられています。これは手動でWebViewをインスタンス化することで回避できます。

私は(この特定のアプリで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

+0

うわー、これは実際に動作します。 WTF Google? – 0101100101

関連する問題