我的相对布局包含:
众所周知,广告有时无法使用或无法关闭,因此在广告不可用时将广告视图空间留空是不明智的。因此,我希望内部相对布局在广告横幅出现时自动向上移动。 我怎么能这样做?
答案 0 :(得分:1)
我为解决这个问题所做的是将adview嵌入到一个空的线性布局中,AdView默认为可见性:已消失。我在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);
}
});
答案 1 :(得分: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>
如果您在代码中将广告视图设置为View.GONE,则LinearLayout中的展示位置将被取代,并且以下内容(RelativeLayout)将向上移动。
答案 2 :(得分:0)
为什么这么说&#34;在广告不可用时将广告视频空间留空是不明智的?&#34;
这样做绝对没有错,让它可见通常可以让你的布局更容易管理。
但是,如果确实想要在没有可用广告时隐藏它,请使用AdListener方法设置AdView的可见性。