我正在查看一个不同的问题Google Maps Android API v2 - Interactive InfoWindow (就像在原始的 android google maps 中一样),你可以看到他正在使用 requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY); 使地图 v2 使用全屏。我试过这个,但我的位置按钮部分被我的操作栏覆盖,不像他的。有谁知道如何将它稍微向下移动?
谢谢!
我正在查看一个不同的问题Google Maps Android API v2 - Interactive InfoWindow (就像在原始的 android google maps 中一样),你可以看到他正在使用 requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY); 使地图 v2 使用全屏。我试过这个,但我的位置按钮部分被我的操作栏覆盖,不像他的。有谁知道如何将它稍微向下移动?
谢谢!
不幸的是,您无法控制此按钮。显然,您可以在 android 源代码中搜索此按钮id
并从代码中手动更改布局参数,但我绝对不会这样做。
这个按钮非常容易自己实现。所以我建议禁用内置的“定位我”按钮并实现你自己的,它将位于操作栏的正下方。
要禁用它,请使用:
googleMap.setMyLocationEnabled(false);
新按钮onClick
方法内容:
googleMap.animateCamera(CameraUpdateFactory.newLatLng(new LatLng(googleMap.getMyLocation().getLatitude(),
googleMap.getMyLocation().getLongitude())));
您可以通过其 id 获取视图并重新设置上边距显然 id 始终为 2,但这没有记录,并且当/如果 id 发生更改时,您的应用程序将中断。就像 Pavel 所说,制作自己的位置按钮并将其连接起来更安全。
不幸的是,在 onCreate 中调用 ActionBar.getHeight() 将始终返回 0,因为布局尚未完成。获得真实高度的方法是在 ViewTreeObserver 上使用监听器:
mainLayout.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
public void onGlobalLayout() {
int actionBarHeight = getActionBar().getHeight();
// TODO: set margin of views dependent on actionbar height
// remove the listener
mainLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
}
}