【问题标题】:Why is Android View jumping to Admob ad?为什么 Android View 会跳转到 Admob 广告?
【发布时间】:2016-01-11 21:19:54
【问题描述】:

我是一名相当新的 Android 应用程序员,试图在应用中实现广告。我在这样的片段中包含横幅广告

<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/meScrollView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center_horizontal"

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin"
        tools:context=".MainActivity$PlaceholderFragment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/mePageRelLayout">

        <com.google.android.gms.ads.AdView
            android:id="@+id/adView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            ads:adSize="BANNER"
            ads:adUnitId="@string/banner_ad_unit_id"
            android:layout_gravity="center"
            android:layout_centerHorizontal="true"
            android:layout_below="@+id/chart">
        </com.google.android.gms.ads.AdView>

        lots and lots of 
        <TextView
            .../>

        <TextView
            .../>

        <ImageView
            android:id="@+id/chart"
            .../>
    </RelativeLayout>
</ScrollView>

Java 也是这样:

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

每当我进入该片段时,视图开始正常。我在顶部看到了我想要的 TextView 和 ImageView。然后,视图跳转到 AdView,我一直将其放置在 ScrollView 的底部。我希望它不要跳转到 AdView。每当我滚动离开时,每隔几秒钟就会发生这种情况。为什么会发生这种情况,我可以做些什么来解决它?

我尝试将它放置在 RelativeLayout 中的其他位置,但它仍然会跳转到它所在的位置。我已将它从 RelativeLayout 中取出,然后将其放入 ScrollView,但随后我收到一条错误消息,提示广告没有任何空间(广告为 320x50,可用空间为 0x600,或类似的东西)。我尝试让 Java 代码成为片段中运行的第一件事,但随后它会立即跳转到 AdView,并且之后每隔几秒就会跳转一次。我最好的猜测是我必须覆盖 AdView 中的某些类?

【问题讨论】:

  • 我不会在这个评论之后进入这个,但是如果 ScrollView 应该是整个屏幕,你需要将它插入到 ScrollView 中的一个视图中,上面还有其他视图和/或低于它。如果 ScrollView 应该部分占据屏幕,那么您需要为父布局中的视图设置 setHeight 或 setWeight 或 Above/Below、Top/Bottom 或其他任何内容。
  • 所以它现在位于 ScrollView 内的 RelativeLayout 中,但是一旦我将它从 RelativeLayout 中取出,它就会说 ScrollView 只能承载一个直接子级。我有点希望它位于 RelativeLayout 中的某些视图之间,以便您可以根据需要滚动浏览广告。不过,感谢您的帮助!
  • 您的问题不清楚,请详细说明并提供更多XML数据。
  • 对不起,我会尽力澄清
  • 在这里找到另一个修复:stackoverflow.com/questions/9842494/…

标签: java android android-fragments admob adview


【解决方案1】:

很可能当 adView 接收内容时,它会导致自身短暂获得焦点,或者导致包含的 ScrollView 重新定位以显示 AdView。

我强烈建议将 AdView 移到 ScrollView 之外,因为这样会

  1. 避免问题。
  2. 确保始终显示 AdView,从而增加您的收入。

【讨论】:

  • 这样绝对可以避免问题!感谢您的帮助
【解决方案2】:

我认为您需要向 ScrollView 添加其他内容。如果已经有其他内容,请尝试在 ScrollView 中的所有其他内容之前以编程方式实例化广告。如果您希望广告与 ScrollView 分开,请将其放在外部但在同一个片段中。

【讨论】:

  • 感谢您的建议!我都试过了;现在它与 ScrollView 中的其他内容位于 RelativeLayout 中,因此您可以滚动过去。由于某种原因,它仍然会在一段时间后直接跳转到广告,但我感觉它与 ScrollView 有关。我注意到每次跳转时,logcat都会打印出>广告不可见。不刷新广告。 >计划从现在起 60000 毫秒后刷新广告。
猜你喜欢
  • 1970-01-01
  • 2020-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多