Ho un ActivityA contenente FragmentA e vorrei rendere una transizione di elemento condiviso ad ActivityB contenente FragmentB.Transizione elemento condiviso Android tra un'attività con un frammento in un'altra attività con un frammento
Nelle attività l'elemento condiviso sarebbe la barra degli strumenti. Nei frammenti sarebbe una vista testuale. C'è un modo per fare questo?
In caso contrario, come è possibile effettuare una transizione di elementi condivisa tra entrambi i frammenti nelle attività?
Grazie in anticipo per qualsiasi aiuto. Sono stato bloccato per un po '.
Ok, quindi fornirò del codice per chiarire.
Qui ho MainActivity:
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<!-- This is shared with DetailActivity -->
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"
android:transitionName="sharedToolbar"/>
</android.support.design.widget.AppBarLayout>
<!-- This contains MainFragment -->
<FrameLayout
android:id="@+id/activity_main_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</android.support.design.widget.CoordinatorLayout>
Questa attività contiene questo frammento chiamato MainFragment:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- This element is shared with DetailFragment -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Fragment main"
android:transitionName="sharedFragment"/>
<!-- When this is clicked show next screen -->
<Button
android:id="@+id/fragment_main_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Go to detail screen"
android:layout_gravity="bottom|center"/>
</FrameLayout>
Ora quello che voglio fare è quando si fa clic sul pulsante nella MainFragment voglio eseguire un transazione frammento a questa attività chiamata DetailActivity:
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<!-- This is shared with MainActivity -->
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"
android:transitionName="sharedToolbar"/>
</android.support.design.widget.AppBarLayout>
<!-- This contains DetailFragment -->
<FrameLayout
android:id="@+id/activity_detail_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</android.support.design.widget.CoordinatorLayout>
Questa attività contiene questo frammento chiamato DetailFragment:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- This element is shared with MainFragment -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Fragment detail"
android:transitionName="sharedFragment"/>
</FrameLayout>
Come si può vedere nel codice entrambe le attività condividono la barra degli strumenti e ha lo stesso nome della transizione. I loro frammenti contenenti entrambi hanno una vista testuale che vorrei animare anche nella transizione. Anche queste visualizzazioni di testo hanno lo stesso nome di transizione. C'è un modo per fare questo? Ho provato e finora ho potuto solo animare la barra degli strumenti tra le due attività. Come faccio a fare in modo che i frammenti eseguano una transizione di elementi condivisa allo stesso tempo?
Se ciò non può essere fatto, come avrei potuto fare in modo, quando ho navigare dal MainActivity a DetailActivity che la TextView dei frammenti sono ciò che appare come la transizione in modo da non le barre degli strumenti (Se non posso animare l'attività e le transazioni frammento allo stesso tempo).
plz pubblica ciò che cerchi? –
@DaminiMehra SMS Il formato inglese non funziona qui, spero che tu abbia capito il motivo per cui le persone fanno domande qui. – Triode