Può essere fatto in Android Lollipop utilizzando Activity Transition Animations, utilizzando lo stesso layout per la barra delle azioni in tutte le attività e definire la barra delle azioni per essere un elemento condiviso nel modo seguente:
In primo luogo, assicurarsi di consentire transizioni di attività nel V21/styles.xml e utilizzare NoActionBar tema in modo da poter creare una barra di un'azione personalizzata:
<style name="AppTheme.NoActionBar">
...
<!-- enable window content transitions -->
<item name="android:windowActivityTransitions">true</item>
<!-- specify enter and exit transitions -->
<item name="android:windowEnterTransition">@android:transition/slide_right</item>
<item name="android:windowExitTransition">@android:transition/slide_left</item>
<!-- specify shared element transitions -->
<item name="android:windowSharedElementEnterTransition">@transition/app_bar_transform</item>
<item name="android:windowSharedElementExitTransition">@transition/app_bar_transform</item>
</style>
Poi definire l'app_bar_transform.xml essere changeBounds come questo:
<?xml version="1.0" encoding="utf-8"?>
<transitionSet>
<changeBounds/>
</transitionSet>
Poiché il layout della barra delle applicazioni è lo stesso in tutte le attività, non si verificherà alcuna trasformazione.
nella vostra abitudine AppBarLayout impostare l'attributo android: transitionName:
<android.support.design.widget.AppBarLayout
...
android:id="@+id/app_bar"
android:transitionName="appBar"
...
</android.support.design.widget.AppBarLayout>
Usare questo layout per la barra delle azioni in tutte le vostre attività:
<include layout="@layout/app_bar"/>
Poi, quando si desidera avviare il attività successiva definisce il layout della barra delle applicazioni come un elemento condiviso come questo:
final Intent intent = new Intent(getApplicationContext(), MainActivity.class);
ActivityOptions options = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
AppBarLayout appBar = (AppBarLayout) findViewById(R.id.app_bar);
options = ActivityOptions.makeSceneTransitionAnimation(WelcomeActivity.this, appBar, "appBar");
}
ActivityCompat.startActivity(WelcomeActivity.this, intent, options != null ? options.toBundle() : null);
Ciò manterrà la barra delle applicazioni in posizione durante la transizione tra le attività.
possibile duplicato di [Transizione tra attività senza spostare la barra di azione] (http://stackoverflow.com/questions/11904758/transitioning- between activities-without-moving-actionbar) –