作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想在运行时移动 Google map 布局项目,但我做不到,而且我不知道这是否可能。我想要做的是:我有一个占据所有屏幕的谷歌地图 fragment 。我也有一个广告。当应用程序启动时,我会显示 map 。像这样:
当广告加载时,我将广告显示在底部,但我需要将 Google Logo 移到广告上方。像这样:
我试过:
if (banner is loaded)
googleMap.setPadding(0, 0, 0, banner.getLayoutParams().height);
但是我没有成功。我做错了什么?
编辑:感谢@SimplePlan,我将包含 mapfragment 的 RelativeLayout 更改为 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);
}
});
最佳答案
只要布局过程没有完成, View 的维度就会设置为 0。使用 Handler
,您可以在布局完成后设置 map 的内边距。
new Handler().post(new Runnable() {
@Override
public void run() {
mapHelper.map.setPadding(0,0,0,ad.getHeight());
}
});
关于Android 在运行时更改谷歌地图填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22267814/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!