Cómo implementar la transición de navegación de "padre a hijo" según lo prescrito por Material Design
Las directrices de diseño de materiales de Google prescriben la siguiente transición para las transiciones de "padre a hijo" cuando el padre conste de una lista. (Directrices de Diseño de Material)
¿Cómo puedo proporcionar esta transición? No tengo conocimiento de ninguna transición incorporada proporcionada para hacer esto posible.
- Expanda y contraiga vistas suavemente
- Uso de animaciones de Android L para cambiar entre actividades
- Cómo iniciar la aplicación con Theme.Material en dispositivos antiguos
- ¿Cómo agregar valor de notificación para el elemento en NavigationView para el cajón de diseño de material?
- Cajón de navegación de estilo de material, el color de la barra de estado se pone demasiado oscuro
- ¿Cómo iniciar la transición de elementos compartidos usando Fragmentos?
- Progreso circular con un botón de acción flotante
- Android L - Botón de acción flotante (FAB)
- Diseño de materiales paleta de colores
- Flecha de flecha hacia arriba que superpone el título de la barra de herramientas
- Uso de Theme.Material.Light.DarkActionBar con Theme.AppCompat.Light.DarkActionBar bloquea la aplicación en android L (api v21)
- Estilo de un widget SearchView mediante la biblioteca de soporte v21
- Inbox de Google como elemento de RecyclerView abrir animación
Iniciar una actividad con un elemento compartido
Para realizar una animación de transición de pantalla entre dos actividades que tienen un elemento compartido:
Habilite las transiciones de contenido de la ventana en su tema. Especifique una transición de elementos compartidos en su estilo. Defina su transición como un recurso XML. Asigne un nombre común a los elementos compartidos en ambos diseños con el atributo android: transitionName . Utilice el método ActivityOptions.makeSceneTransitionAnimation ().
// get the element that receives the click event final View imgContainerView = findViewById(R.id.img_container); // get the common element for the transition in this activity final View androidRobotView = findViewById(R.id.image_small); // define a click listener imgContainerView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(this, Activity2.class); // create the transition animation - the images in the layouts // of both activities are defined with android:transitionName="robot" ActivityOptions options = ActivityOptions .makeSceneTransitionAnimation(this, androidRobotView, "robot"); // start the new activity startActivity(intent, options.toBundle()); } });
Para las vistas dinámicas compartidas generadas en el código, utilice el método View.setTransitionName () para especificar un nombre de elemento común en ambas actividades.
Para invertir la animación de transición de escena al finalizar la segunda actividad, llame al método Activity.finishAfterTransition () en lugar de Activity.finish ().
Tomar desde aquí Personalizar las transiciones de la actividad
Una opción es utilizar ActivityOptionsCompat.makeScaleUpAnimation
Activity activity = getActivity(); Intent intent = new Intent(activity, OtherActivity.class); Bundle options = ActivityOptionsCompat.makeScaleUpAnimation( sourceView, 0, 0, sourceView.getWidth(), sourceView.getHeight()).toBundle(); ActivityCompat.startActivity(activity, intent, options);
Esto hará que la nueva actividad se expanda vertical y horizontalmente desde su sourceView
- Android WebView getElementById ('math') no funciona dinámicamente
- Cómo llamar a notifyDataSetChanged () de AsyncTask onPostExecute () en otra clase