我正在嘗試將橫幅廣告添加到我的遊戲頂部。我的活動使用具有自定義SurfaceView的RelativeLayout。我希望廣告重疊SurfaceView。Android AdMob:addView直到返回活動狀態才顯示廣告
廣告加載並且是可點擊的,但沒有繪製到屏幕上。當我離開活動並返回時,會繪製廣告(例如,按主頁按鈕,然後通過最近的菜單返回到應用程序)。
這不是等待廣告加載的問題,因爲1)如果我等待,廣告不會顯示; 2)儘管廣告不可見,但廣告仍可點擊。
這裏是我的佈局代碼:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/layout_mainmenu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.xxx.menu.SurfaceViewMainMenu
android:id="@+id/view_mainmenu"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<com.google.android.gms.ads.AdView
android:id="@+id/ad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignTop="@id/view_mainmenu"
android:layout_alignLeft="@id/view_mainmenu"
ads:adSize="BANNER"
ads:adUnitId="@string/ad_unit_id_banner"/>
加載廣告的代碼是由RenderThread張貼一個Runnable到UI線程時RenderThread是第一次運行。
有沒有人有任何想法,我可以使廣告顯示馬上?或者爲什麼只有在我返回活動時纔會繪製廣告?
我試着在RelativeLayout上調用forceLayout()/ requestLayout(),但這沒有幫助。我也試圖在視圖上調用invalidate()。
謝謝, 湯姆。
編輯
我添加了一個AdListener的到AdView中,我們可以確認onAdLoaded被調用。廣告已加載但不可見。
什麼作品:我在onAdLoaded回調中發出另一個adLoad請求,然後顯示廣告。
因此,該廣告僅在我提出第二個請求後纔會顯示。任何人都知道這裏發生了什麼?
您是否找到更好的解決方案來調用它兩次? 我發現我有同樣的問題,如果我加載一次,它告訴我廣告已加載,但我什麼都看不到;當我再次加載它時,它會等待幾秒鐘,然後變得可見。 – Doolali