private void alignButtons()

in SimpleTransition/app/src/main/java/com/android/example/simpletransition/MainActivity.java [76:119]


    private void alignButtons(boolean left, boolean top) {
        LayoutParams params;

        // Trigger a transition to run after the next layout pass
        if (mStaggerCB.isChecked()) {
            TransitionManager.beginDelayedTransition(mSceneRoot, mStaggeredTransition);
        } else {
            TransitionManager.beginDelayedTransition(mSceneRoot);
        }

        // Change layout parameters of the button stack
        int oldAlignmentLR = left ? ALIGN_PARENT_RIGHT : ALIGN_PARENT_LEFT;
        int newAlignmentLR = left ? ALIGN_PARENT_LEFT : ALIGN_PARENT_RIGHT;
        int oldAlignmentTB = top ? ABOVE : BELOW;
        int newAlignmentTB = top ? BELOW : ABOVE;

        params = (LayoutParams) mFirstButton.getLayoutParams();
        params.addRule(top ? ALIGN_PARENT_BOTTOM : BELOW, 0);
        params.addRule(oldAlignmentLR, 0);
        params.addRule(top ? BELOW : ALIGN_PARENT_BOTTOM, top ? R.id.staggerCB : 1);
        params.addRule(newAlignmentLR);
        mFirstButton.setLayoutParams(params);

        params = (LayoutParams) mSecondButton.getLayoutParams();
        params.addRule(oldAlignmentLR, 0);
        params.addRule(oldAlignmentTB, 0);
        params.addRule(newAlignmentLR);
        params.addRule(newAlignmentTB, R.id.firstButton);
        mSecondButton.setLayoutParams(params);

        params = (LayoutParams) mThirdButton.getLayoutParams();
        params.addRule(oldAlignmentLR, 0);
        params.addRule(oldAlignmentTB, 0);
        params.addRule(newAlignmentLR);
        params.addRule(newAlignmentTB, R.id.secondButton);
        mThirdButton.setLayoutParams(params);

        params = (LayoutParams) mFourthButton.getLayoutParams();
        params.addRule(oldAlignmentLR, 0);
        params.addRule(oldAlignmentTB, 0);
        params.addRule(newAlignmentLR);
        params.addRule(newAlignmentTB, R.id.thirdButton);
        mFourthButton.setLayoutParams(params);
    }