【问题标题】:Admob pushes all content down (including window)!Admob 下推所有内容(包括窗口)!
【发布时间】:2015-02-23 12:55:30
【问题描述】:

我相信我有最独特和最奇怪的问题。

所以为了简单起见,我做了世界上最简单的布局:

 <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
android:background="#4d9345"
        android:layout_height="match_parent" >


        <com.google.android.gms.ads.AdView
            android:id="@+id/adView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_alignParentTop="true"
            ads:adSize="BANNER"
            ads:adUnitId="@string/admob">
        </com.google.android.gms.ads.AdView>

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:text="Button" />

    </RelativeLayout>

然后是代码:

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);

    Window window = getWindow();
    window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
    window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);



    setContentView(R.layout.myact);


    AdView mAdView = (AdView) findViewById(R.id.adView);
    AdRequest.Builder adRequest = new AdRequest.Builder();
   AdRequest req = adRequest.build();
    mAdView.loadAd(req);

}

场景 1:

如果我在按下启动此活动的按钮时启动此活动,则一切正常。活动按预期显示(下图):

场景 2:

如果此活动是从 SCREEN OFF 广播接收器启动的,那么它会在广告加载后立即弄乱布局。包括窗口在内的所有内容都被下推。 (下图):

您可以看到,甚至它的父级(相对布局)也被下推(如您在广告上方看到的黑色间隙)。

场景 3:

如果我对 XML 布局代码进行一些更改,然后将 admob 视图边距设为顶部:

android:layout_marginTop="25dp"

结果是内容没有下推:

注意事项:

  1. 此活动在某些情况下启动,但仅在屏幕关闭时启动。

  2. 如果我不使用 requestWindowFeature(Window.FEATURE_NO_TITLE);在我的代码中,它可以正常工作,但使用此功能很关键。

为了让这个问题更加奇怪: 3. 它只在三星 Galaxy S3 mini 上执行此操作。它在 HTC One、HTC Wildfire 和其他一些设备上运行没有问题。 (但也许有些设备与 Galaxy s3 mini 完全一样)。 4. 我只在 Admob 和 Leadbolt 广告上遇到过这种行为。使用 Amazon、Mmedia 甚至我自己的广告(从我的服务器中提取),它都没有问题..

即使我没想到,因为这是最奇怪的问题,我真的很想得到一些帮助..

提前谢谢你。

【问题讨论】:

  • 您的设备运行哪些版本的 android?通知栏在 KitKat 上的工作方式不同(您实际上无法隐藏它)
  • 有问题的设备 (Galaxy s3 mini) 运行 4.1.2。 HTC Wildfire(运行良好)运行较旧的 2.3.5,HTC One 运行 4.4.2(运行良好)。
  • 嗯,不知道发生了什么,但看看这篇文章。它提到了一些错误,并且另一个答案有一些可能对您有用的标志stackoverflow.com/questions/3074398/…
  • 现在我发现它确实很旧,并且指的是相当古老的 Android 版本 :( 不过我认为它与窗口标志有关,我会朝那个方向研究
  • 你刚刚救了我的命。您链接的主题实际上很有帮助。它现在就像一个魅力。我希望我能接受你的回答。

标签: android admob leadbolt


【解决方案1】:

这可能是正确隐藏或显示操作栏的问题,并且必须对窗口标志做一些事情。

查看这篇旧帖子,并尝试解决方案。它可能会起作用。 Android - status bar prevents full screen

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 2021-08-08
    相关资源
    最近更新 更多