Java Code Examples for android.view.ViewGroup#getLayoutTransition()

The following examples show how to use android.view.ViewGroup#getLayoutTransition() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ViewOverlayPreJellybean.java    From Transitions-Everywhere with Apache License 2.0 5 votes vote down vote up
@Override
public void addView(@NonNull View child, int left, int top) {
    if (child.getParent() instanceof ViewGroup) {
        ViewGroup parent = (ViewGroup) child.getParent();
        LayoutTransition layoutTransition = null;
        if (parent.getLayoutTransition() != null) {
            layoutTransition = parent.getLayoutTransition();
            parent.setLayoutTransition(null);
        }
        parent.removeView(child);
        if (layoutTransition != null) {
            parent.setLayoutTransition(layoutTransition);
        }

        if (child.getParent() != null) {
            // LayoutTransition will cause the child to delay removal - cancel it
            ViewGroupUtils.cancelLayoutTransition(parent);
            // fail-safe if view is still attached for any reason
            if (child.getParent() != null && FIELD_VIEW_PARENT != null) {
                ReflectionUtils.setFieldValue(child, FIELD_VIEW_PARENT, null);
            }
        }
        if (child.getParent() != null) {
            return;
        }
    }
    child.setTag(R.id.overlay_layout_params_backup, child.getLayoutParams());
    addView(child, initParams(child, left, top));
    invalidate();
}
 
Example 2
Source File: ViewGroupUtils.java    From Transitions-Everywhere with Apache License 2.0 5 votes vote down vote up
public boolean cancelLayoutTransition(@NonNull ViewGroup group) {
    final LayoutTransition layoutTransition = group.getLayoutTransition();
    if (layoutTransition != null && layoutTransition.isRunning()) {
        if (sMethodLayoutTransitionCancel == null) {
            sMethodLayoutTransitionCancel = ReflectionUtils.getPrivateMethod(LayoutTransition.class, "cancel");
        }
        ReflectionUtils.invoke(group.getLayoutTransition(), null, sMethodLayoutTransitionCancel);
        return true;
    }
    return false;
}