0

我有一个相对布局,其中包含:

  1. adView 在父布局的底部对齐。其他
  2. 包含应用程序视图(如按钮等)的相对布局。

众所周知,广告有时不可用或 wifi 已关闭,因此在广告不可用时将 adview 空间留空是不明智的。因此,我希望内部相对布局在广告横幅出现时自动向上移动。我该怎么做?

4

3 回答 3

1

我为解决这个问题所做的是将 adview 嵌入到一个空的线性布局中,AdView 默认为 visibility:gone。我在 AdView 中添加了一个 AdListener,并在 AdListener 的 onAdLoaded 方法中将可见性设置为“可见”。

    <LinearLayout android:id="@+id/ad_wrapper"
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <AdView android:id="@+id/adView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            ads:adSize="SMART_BANNER"
            android:visibility="gone"/>

    </LinearLayout>

接着

    adView.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            super.onAdLoaded();
            adView.setVisibility(View.VISIBLE);
        }
    });
于 2014-10-09T02:59:59.800 回答
0

我建议将您的 RelativeLayout 嵌入到 LinearLayout 中,将 LinearLayout 方向设置为垂直,例如:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <!-- Your Ad view -->

    <RelativeLayout ....>
           <!-- items -->
    </RelativeLayout>

</LinearLayout>

如果您在代码中将 adview 设置为 View.GONE,LinearLayout 中的位置将被替换,并且下面的内容(RelativeLayout)将向上移动。

于 2014-08-01T01:02:27.190 回答
0

为什么说“在广告不可用时将 adview 空间留空是不明智的”?

这样做绝对没有错,让它可见通常可以使您的布局更易于管理。

但是,如果您真的想在没有可用广告时隐藏它,请使用 AdListener 方法设置 AdView 的可见性。

于 2014-08-01T11:35:17.903 回答