回答

3

不幸的是,你不必在此按钮上的任何控制。很显然,你可以在android源代码中搜索这个按钮id,并从代码中手动更改布局参数,但我绝对不会这么做。

这个按钮非常容易实现自己。因此,我建议禁用内置的“定位我”按钮并实施您自己的定位,它位于操作栏的正下方。

要禁用它使用:

googleMap.setMyLocationEnabled(false); 

新建按钮onClick方法内容:

googleMap.animateCamera(CameraUpdateFactory.newLatLng(new LatLng(googleMap.getMyLocation().getLatitude(), 
                   googleMap.getMyLocation().getLongitude()))); 
+0

Thanks!我实际上不得不在下面做下面的事情。否则,我得到的位置图层未启用例外。 map.setMyLocationEnabled(true); uiSettings.setMyLocationButtonEnabled(false); – tkblackbelt 2013-02-22 19:03:46

1

您只需通过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); 
      } 
    } 
} 
+0

谢谢!这对调整保证金起作用 – tkblackbelt 2013-02-22 18:49:19

相关问题