包含SMART_BANNER的RelativeLayout布局高度应设置为多少?
需要给承载SMART_BANNER的RelativeLayout设置合适的最小高度,不然广告加载后可能出现截断或者布局挤压的问题。
先说说SMART_BANNER的尺寸规则:它会根据设备屏幕宽度自动调整高度——手机屏幕(宽度小于728dp)的话,高度一般是50dp(普通屏)或32dp(窄屏);平板屏幕(宽度≥728dp)的话,高度固定是90dp。
你现在给RelativeLayout设了固定的50dp高度,这在平板上肯定出问题,90dp高的广告会被容器截断。
给你两个可行的解决办法:
- 直接把RelativeLayout的高度改成
wrap_content,再加个minHeight="90dp"。这样容器会跟着广告实际高度自适应,同时保证最大高度需求被满足,不会截断广告。修改后的代码:<RelativeLayout android:id="@+id/id_ad_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="90dp" android:layout_alignParentBottom="true"> </RelativeLayout> - 如果不想留多余空间,也可以通过代码动态获取当前设备SMART_BANNER的推荐高度,再设置给容器。比如用Kotlin写的话:
这样容器高度刚好适配当前设备的广告尺寸,不会有空隙也不会截断。val adSize = AdSize.SMART_BANNER val bannerHeight = adSize.getHeightInPixels(context) binding.idAdView.minimumHeight = bannerHeight
另外你AdView的wrap_content高度设置是对的,保持原样就行,让它自己跟着广告尺寸调整。
内容的提问来源于stack exchange,提问作者Eldestornillador
相关产品推荐
相关产品推荐

