Sto riscontrando uno strano problema/bug relativo alle transizioni ImageView
tra Attività in Android 5.0.Problema strano durante la transizione di ImageView in Android 5.0
Sto cercando di passare una miniatura da Fragment A
(in Activity A
) per l'immagine di intestazione di Fragment B
(in Activity B
). Funziona bene la maggior parte del tempo, ma a volte incasina leggermente.
Ecco una foto di quello che sembra quando si scombina:
Naturalmente, si suppone per riempire l'intera area. Entrambi ImageViews sono impostati su ScaleType.CENTER_CROP
, quindi non riesco a immaginare che sia il problema.
Che cosa è curioso è che la questione si fissa immediatamente dopo lo scorrimento in Activity B
(tutto è contenuto all'interno di una sottoclasse ScrollView
che cambia il ImageView
imbottitura su di scorrimento).
Il codice per il lancio Activity B
è piuttosto semplice:
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(
activity, thumbImageView, "cover"); // "cover" is the shared element name for both ImageViews
ActivityCompat.startActivity(activity, intent, options.toBundle());
Ecco il codice per la osservabile ScrollView
ascoltatore:
scrollview.setOnScrollChangedListener(new OnScrollChangedListener() {
@Override
public void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt) {
// Such parallax, much wow
headerImageView.setPadding(0, (int) (t/1.5), 0, 0);
}
});
Inoltre, qui è una parte del mio stile tema:
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
<item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
<item name="android:windowSharedElementExitTransition">@android:transition/move</item>
Qualche idea?
Quali transizioni utilizzate? – klmprt
Mi dispiace, ho dimenticato di dirlo. È la transizione predefinita '@android: transition/move'. –
Frequenza del bug (ad esempio ogni volta, a caso, ecc.). Inoltre, il problema si verifica ancora se si commenta il codice 'setPadding()' nel listener della vista scorrevole? Sto solo cercando di capire la causa principale del perché questo potrebbe accadere. –