Sencha Touch - 添加AdView时不会调整大小

时间:2013-03-09 01:13:12

标签: android cordova sencha-touch-2 admob

我有这个:

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并不尊重尺寸变化,对吗?

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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;
}