Android AdView不可见 - 但可点击

时间:2014-06-29 19:18:03

标签: java android admob

我创建了一个包含新广告sdk的Android应用,但它是隐身的。我在以前的应用程序中使用它,它在那里工作得很好。现在,在我的新应用程序中,我也做了同样的事情。但是:

AdView不可见,但可点击。如果你回到你的主屏幕(只需最小化,不要停止!),然后重新打开它,广告就会显示出来。

我的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.android.gms.ads"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
android:orientation="vertical" >

<org.andengine.opengl.view.RenderSurfaceView
    android:id="@+id/SurfaceViewId"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:gravity="center" />

<com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adViewId"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    ads:adUnitId="XXX"
    ads:adSize="BANNER" />

</RelativeLayout>

我的onCreate方法:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    adView = (AdView) findViewById(R.id.adViewId);

    AdRequest adRequest = new AdRequest.Builder().build();

    adView.loadAd(adRequest);

    v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
}

编辑: 60秒后,视图变为可见。

2 个答案:

答案 0 :(得分:2)

你的问题是你告诉你RenderSurfaceView matchParent forits height。这意味着它将占用其父级的所有空间,而不会为AdView留下任何空间。

请改为尝试:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.android.gms.ads"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
android:orientation="vertical" >

<org.andengine.opengl.view.RenderSurfaceView
    android:id="@+id/SurfaceViewId"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:gravity="center" />

<com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adViewId"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ads:adUnitId="XXX"
    ads:adSize="BANNER" />

</LinearLayout>

这使用layout_weight和LinearLayout来扩展RenderSurfaceView以填充所有未使用的垂直空间。

答案 1 :(得分:0)

也许你忘了实施这些重要的方法

public void onPause() {
    super.onPause();
    this.adView.pause();
}

public void onResume() {
    super.onResume();
    this.adView.resume();
}