public override bool LayoutDependsOn (CoordinatorLayout parent, Java.Lang.Object child, View dependency) { return dependency is InfoPane; } public override bool OnDependentViewChanged (CoordinatorLayout parent, Java.Lang.Object child, View dependency) { // Move the fab vertically to place correctly wrt the info pane var fab = child.JavaCast<SwitchableFab> (); var currentInfoPaneY = ViewCompat.GetTranslationY (dependency); var newTransY = (int)Math.Max (0, dependency.Height - currentInfoPaneY - minMarginBottom - fab.Height / 2); ViewCompat.SetTranslationY (fab, -newTransY); // If alternating between open/closed state, change the FAB face if (wasOpened ^ ((InfoPane)dependency).Opened) { fab.Switch (); wasOpened = !wasOpened; } return true; } }