Skip to content

Instantly share code, notes, and snippets.

@Nyame123
Created November 17, 2020 11:16
Show Gist options
  • Save Nyame123/5cf49120ec13b505cd60b24295a87cb3 to your computer and use it in GitHub Desktop.
Save Nyame123/5cf49120ec13b505cd60b24295a87cb3 to your computer and use it in GitHub Desktop.
Create transition example
package com.bisapp.android_animations;
import android.os.Bundle;
import android.transition.ChangeBounds;
import android.transition.Fade;
import android.transition.Scene;
import android.transition.Transition;
import android.transition.TransitionManager;
import android.transition.TransitionSet;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.FrameLayout;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import org.jetbrains.annotations.NotNull;
public class TransitionExFragment extends Fragment {
private Scene firstScene;
private Scene secondScene;
private FrameLayout sceneRoot;
private boolean transitionStarted;
@Override
public View onCreateView(
LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState
) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_transition, container, false);
}
public void onViewCreated(@NonNull final View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
createScene(view);
final TransitionSet transitionSet = getTransitionSet();
transitionStarted = false;
view.findViewById(R.id.goBtn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
transitionStarted = !transitionStarted;
if (transitionStarted){
TransitionManager.go(secondScene,transitionSet);
}else {
TransitionManager.go(firstScene,transitionSet);
}
}
});
}
@NotNull
private TransitionSet getTransitionSet() {
final ChangeBounds changeBounds = new ChangeBounds();
final TransitionSet transitionSet = new TransitionSet();
transitionSet.addTransition(changeBounds);
transitionSet.addTransition(new Fade());
return transitionSet;
}
private void createScene(@NonNull View view) {
// Create the scene root for the scenes in this app
sceneRoot = view.findViewById(R.id.scene_root);
// Create the scenes
firstScene = Scene.getSceneForLayout(sceneRoot,R.layout.first_scene,getContext());
secondScene = Scene.getSceneForLayout(sceneRoot,R.layout.second_scene,getContext());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment