@Override protected HashMap<String, Object> fillValues(ViewGroup.LayoutParams lp, HashMap<String, Object> data, HashMap<String, Object> parentData) { super.fillValues(lp, data, parentData); if (lp instanceof AppBarLayout.LayoutParams) { AppBarLayout.LayoutParams alp = (AppBarLayout.LayoutParams) lp; data.put("LayoutParams_ScrollFlags", getTranslator().appBarLayoutScrollFlags(alp.getScrollFlags())); data.put("LayoutParams_ScrollInterpolator", alp.getScrollInterpolator() != null ? alp.getScrollInterpolator().getClass().getName() : "null"); } if (lp instanceof CollapsingToolbarLayout.LayoutParams) { CollapsingToolbarLayout.LayoutParams clp = (CollapsingToolbarLayout.LayoutParams) lp; data.put("LayoutParams_CollapseMode", getTranslator().collapseMode(clp.getCollapseMode())); data.put("LayoutParams_ParallaxMultiplier", clp.getParallaxMultiplier()); } if (lp instanceof CoordinatorLayout.LayoutParams) { CoordinatorLayout.LayoutParams clp = (CoordinatorLayout.LayoutParams) lp; data.put("LayoutParams_AnchorId", IdsHelper.getNameForId(clp.getAnchorId())); data.put("LayoutParams_Behavior", clp.getBehavior() != null ? clp.getBehavior().getClass().getName() : "null"); } return data; }
final CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams) child.getLayoutParams(); if (lp.getAnchorId() != appBarLayout.getId()) {
final CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams) child.getLayoutParams(); if (lp.getAnchorId() != appBarLayout.getId()) {
private boolean updateFabVisibility(CoordinatorLayout parent, AppBarLayout appBarLayout, FabSpeedDial child) { final CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams) child.getLayoutParams(); if (lp.getAnchorId() != appBarLayout.getId()) { // The anchor ID doesn't match the dependency, so we won't automatically // show/hide the FAB return false; } if (child.getUserSetVisibility() != VISIBLE) { // The view isn't set to be visible so skip changing its visibility return false; } if (mTmpRect == null) { mTmpRect = new Rect(); } // First, let's get the visible rect of the dependency final Rect rect = mTmpRect; ViewGroupUtils.getDescendantRect(parent, appBarLayout, rect); if (rect.bottom <= appBarLayout.getMinimumHeightForVisibleOverlappingContent()) { // If the anchor's bottom is below the seam, we'll animate our FAB out child.hide(); } else { // Else, we'll animate our FAB back in child.show(); } return true; }