Android框架布局堆栈在某些设备上显示不正确

时间:2012-08-09 12:31:58

标签: android admob android-framelayout

即使手机处于离线状态,我也可以控制广告的存在 将adob广告添加到LinearLayout中,这是广告的框架布局 将在游戏的顶部显示。在HTC Desire(2.2)上,视图显示正确 广告位于屏幕顶部,但在三星Galaxy SII(2.3.1)广告位于游戏下方 - 它是不可见的,但如果按下该区域,它将触发广告操作。

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent" >

<LinearLayout
    android:id="@+id/game"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
</LinearLayout>

<LinearLayout
    android:id="@+id/ads"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:background="@color/black"
    android:orientation="vertical" >

</LinearLayout>
</FrameLayout>

加载广告的代码:

private void loadAds() {
    LinearLayout layout = (LinearLayout) findViewById(R.id.ads);
    final AdView adView = new AdView(this, AdSize.BANNER, ADMOB_ID);
    layout.addView(adView);
    final AdRequest request = new AdRequest();  
    adView.loadAd(request);
}

编辑:添加bringToFront()没有帮助。在SII上,广告并没有完全隐藏在那里 大约3-5px的顶部可见。

编辑2:事实证明,问题是由隐藏在onCreate中的广告布局引起的。解决方法是在执行onCreate后通过处理程序隐藏它。

1 个答案:

答案 0 :(得分:0)

您可以做的是在广告中添加广告,然后根据您是否要展示广告来切换广告的可见性。

//To show the view
adView.setVisibility(View.VISIBILE);

//To hide the view
adView.setVisibility(View.GONE);

您还可以尝试使用当前代码调用AdView上的bringToFront()。