1

我有这个:

private void setupAds() {
    AdView adView = new AdView(this, AdSize.BANNER, "a15138083566f58");
    LinearLayout layout = super.root;
    layout.addView(adView);

    AdRequest request = new AdRequest();
    request.setTesting(true);
    adView.loadAd(request);

    super.root.requestLayout();
}

当广告加载时,它会覆盖我的应用程序的底部。如果我切换方向,一切都会正确重新渲染。这一定意味着 WebView 的大小是正确的,但是 Sencha Touch 不尊重大小的变化,对吧?

我该如何解决?

4

2 回答 2

1

当以编程方式添加 AdView 时,通常会将其添加到您为此目的专门创建和调整大小的 ViewGroup 中。我不知道 Sencha Touch 是什么,但如果 super.root 是整个 Activity 的 ViewGroup,那么您的显示将完全取决于为根视图指定的布局类型。

建议您在布局中创建 AdViewParent 并将 AdView 添加到其中。

于 2013-03-10T10:09:42.943 回答
0

诀窍是不要将 adView 放在super.root布局上,而是放在 WebView 的布局上(appViewDridGap 的)。这是屏幕底部水平对齐横幅的代码

private void setupAds() {
    AdView adView = new AdView(this, AdSize.BANNER, "a15138083566f58");
    //         
    RelativeLayout layout = new RelativeLayout(this);
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.MATCH_PARENT,
                AdSize.BANNER.getHeightInPixels(this));
    rparams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    layout.addView(adView, params);
    // 
    appView.addView(layout, new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT));
    request adRequest = new AdRequest();
    adView.loadAd(request);
}

使用这种方法,您必须避免 admob 横幅的内容重叠。您可以在 app.scss 中执行此操作,例如

#bottomitemid{
   padding-bottom: 50px;
}
于 2013-09-04T18:15:38.553 回答