Grender Grender - 2 months ago 21
Android Question

Bug with anchored FloatingActionButton in support library 24.2.1

I have been having this issue since 24.2.0, but now I'm using 24.2.1 and the bug is still here, it only works well <= 24.1.1.

I have an anchored FloatingActionButton done like this:

<ScrollView
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">

<android.support.design.widget.CoordinatorLayout
android:id="@+id/contact_coordinator_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context="es.cocode.baseapp.contact.ContactFragment">

<FrameLayout
android:id="@+id/map_fragment_container"
android:layout_width="match_parent"
android:layout_height="198dp"
android:layout_marginBottom="210dp">

<fragment
android:id="@+id/map_fragment"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</FrameLayout>

<android.support.design.widget.FloatingActionButton
android:id="@+id/fab_fullscreen_map"
android:src="@drawable/ic_fullscreen_white_48dp"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_margin="@dimen/fab_margin"
app:layout_anchor="@id/map_fragment_container"
app:layout_anchorGravity="bottom|end" />

</android.support.design.widget.CoordinatorLayout>

</ScrollView>


It usually works like this:

FAB working well

But sometimes the bug appears and the anchor doesn't work:

FAB not working

Is there a way to solve this, or should I wait until this bug gets fixed and use 24.1.1 instead?

Answer

The solution was to set the FloatingActionButton visibility to GONE in the XML and when the map is ready set it back to VISIBLE.

@Override
public void onMapReady(GoogleMap googleMap) {
    . . .
    yourFAB.setVisibility(View.VISIBLE);
}