我在Android Studio中使用Google Maps API(通过默认的Google Maps Activity)。我已启用setMyLocationEnabled(true)
,但设置setMyLocationButtonEnabled
为false,因为我想添加一个自定义浮动操作按钮,这对我来说更适合移动到当前位置。单击标记时,API会自动在地图片段右下方生成指向该标记的方向按钮,但我实施的FAB会覆盖这些按钮。
FAB covers API directions http://i63.tinypic.com/eg48m.png
在查看this answer之后,我将地图片段和浮动操作按钮包裹在CoordinatorLayout
中,希望它会在点击标记时向上移动FAB,就像吃零食栏一样,但它没有按'吨。有没有办法手动激活该动作或至少用触摸事件或类似的东西模拟它?我试图寻找在运行时移动FAB的方法(例如this)但是我没有成功找到适合我情况的解决方案。
以下是活动布局的xml,如果需要更多信息,请告诉我。提前谢谢!
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="(hidden for privacy)"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/find_my_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
android:src="@drawable/ic_my_location_gray"
app:backgroundTint="@color/white"/>
</android.support.design.widget.CoordinatorLayout>
答案 0 :(得分:0)
我认为从xml向您的FAB提供android:layout_marginBottom
不起作用,或者您不喜欢此解决方案,因此:
如果您不需要,可以使用setMapToolbarEnabled()隐藏底部的方向按钮:googleMap.getUiSettings().setMapToolbarEnabled(false);
或使用GoogleMap.OnMarkerClickListener:
收听标记点击 googleMap.setOnMarkerClickListener(this);
然后在onMarkerClick()
中执行任何操作:
@Override
public boolean onMarkerClick(Marker marker) {
//give some margin programmatically
//return false to preserve the default behaviour, true o/w
return true;
}