<LinearLayout
orientation="vertical">
...
<android.support.v7.widget.CardView
android:id="@+id/card_pitch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
card_view:cardCornerRadius="0dp">
<com.google.android.gms.ads.NativeExpressAdView
android:id="@+id/adview_small_light"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:visibility="gone"
ads:adSize="FULL_WIDTHx100"
ads:adUnitId="xxx">
</com.google.android.gms.ads.NativeExpressAdView>
</android.support.v7.widget.CardView>1-11 16:21:22.211 28899-28899/?W/Ads:没有足够的空间显示广告。需要411x100dp,但只有379x385 dp。11-11 16:21:22.211 28899-28899/?W/Ads:没有足够的空间显示广告。需要411x100dp,但只有379x100dp。11-11 16:21:22.211 28899-28899/?W/Ads:没有足够的空间显示广告。需要411x100 dp,但只有379x173 dp。11-11 16:21:22.211 28899-28899/?W/Ads:没有足够的空间显示广告。需要411x100dp,但只有379x100dp。
广告没有显示,CardView上的保证金与FULL_WIDTH有问题。有办法这样做吗?使用FULL_WIDTH显示add,并在CardView上显示一些空白。我还尝试在父LinearLayout上添加填充和边距,而不是在CardView上使用同样的问题。
发布于 2016-11-11 22:41:08
FULL_WIDTH常量指定广告应该占据设备屏幕的整个宽度。在你的例子中,广告没有足够的空间,因为它的一些祖先引入了额外的水平填充。要完成目标,您可以确定运行时的宽度应该是多少。您所需要做的就是计算设备的宽度,并减去正确的填充量。例如:
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
width = displayMetrics.widthPixels / displayMetrics.density;
adView.setAdSize(new AdSize(width - padding, 100));需要注意的是,这里的值是dip (密度无关的像素),而不是像素。
https://stackoverflow.com/questions/40556494
复制相似问题