我想在运行时移动Google地图布局项目,但我无法做到这一点,我不知道它是否可能。 我想要做的是:我有一个谷歌地图片段占据了所有的屏幕。我也有广告。当应用程序启动时,我会显示地图。像这样:
广告加载时,我会在底部显示广告,但我需要在广告上方移动Google徽标。像这样:
我试过了:
if (banner is loaded)
googleMap.setPadding(0, 0, 0, banner.getLayoutParams().height);
但我没有成功。我做错了什么?
编辑: 感谢@SimplePlan,我更改了RelativeLayout,其中包含mapfragment到FrameLayout:
<FrameLayout >
<fragment
android:id="@+id/map"
class="com.google.android.gms.maps.SupportMapFragment" />
<com.inmobi.monetization.IMBanner
android:layout_gravity="bottom" />
</FrameLayout>
我在广告中添加了一位听众:
banner.setIMBannerListener(new IMBannerListener() {
@Override
public void onBannerRequestSucceeded(IMBanner arg0) {
googleMap.setPadding(0, 0, 0, banner.getLayoutParams().height);
}
});
答案 0 :(得分:14)
只要布局过程没有完成,视图的维度就会设置为0.使用Handler
,您可以在布局完成后设置地图的填充。
new Handler().post(new Runnable() {
@Override
public void run() {
mapHelper.map.setPadding(0,0,0,ad.getHeight());
}
});