visuales transiciones transicion studio recyclerview para efectos diseño developer botones animaciones animacion activities actividades android animation android-activity android-intent

android - transiciones - actividades de conmutación sin animación



transicion de actividades android studio (7)

¿Cómo puedo usar correctamente el indicador de intención FLAG_ACTIVITY_NO_ANIMATION en el archivo AndroidManifest? Supongo que mi problema es trivial, pero no puedo encontrar un buen ejemplo o solución para él.

<intent-filter> <data android:name="android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION" /> </intent-filter>

Sin embargo, el compliador no informa ningún error, pero los data no son correctos. Solo quiero deshabilitar la animación en caso de cambiar de actividades. Puedo usar getWindow().setWindowAnimations(0); en onCreate o onResume en lugar de usar flag es mejor, ¿no?

Puedo usar también en el código:

Intent intent = new Intent(v.getContext(), newactivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); getContext().startActivity(intent);

Pero quiero usar esta bandera en el Manifiesto de Android. Para desactivar la animación también en caso de que regrese de la segunda actividad a la primera.


Aquí hay una solución de una sola línea que funciona por tan solo minSdkVersion 14 que debe insertar en res/styles.xml :

<item name="android:windowAnimationStyle">@null</item>

al igual que:

<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> ... <item name="android:windowAnimationStyle">@null</item> </style> ... </resources>

¡Aclamaciones!



Prueba este código,

this.startActivity(new Intent(v.getContext(), newactivity.class).addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION));


Puedes crear un estilo,

<style name="noAnimTheme" parent="android:Theme"> <item name="android:windowAnimationStyle">@null</item> </style>

y establecerlo como tema para su actividad en el manifiesto:

<activity android:name=".ui.ArticlesActivity" android:theme="@style/noAnimTheme"> </activity>

También puede definir un estilo para especificar entradas y salidas de animaciones personalizadas. http://developer.android.com/reference/android/R.attr.html#windowEnterAnimation


Si su contexto es una actividad, puede invocar la anulación de TransiciónPending :

Llame inmediatamente después de uno de los sabores de startActivity (Intent) o termine de especificar una animación de transición explícita para realizar a continuación.

Entonces, programáticamente:

this.startActivity(new Intent(v.getContext(), newactivity.class)); this.overridePendingTransition(0, 0);


También puedes hacer esto en todas las actividades de las que no quieras hacer la transición:

@Override public void onPause() { super.onPause(); overridePendingTransition(0, 0); }

Me gusta este enfoque porque no tiene que meterse con el estilo de su actividad.


crea tu propio estilo anulando a android: Theme

<style name="noAnimationStyle" parent="android:Theme"> <item name="android:windowAnimationStyle">@null</item> </style>

Entonces úsala en manifiesto así:

<activity android:name=".MainActivity" android:theme="@style/noAnimationStyle"> </activity>