Problema estranho durante a transição do ImageView no Android 5.0

Estou experimentando um estranho problema / erro em relação às transições do ImageView entre as atividades no Android 5.0.

Estou tentando transição de uma image em miniatura do Fragment A (na Activity A ) paira a image do header do Fragment B (na Activity B ). Funciona bem a maior pairte do tempo, mas às vezes ele se esquece de forma tão leve.

  • Projecto de Eclipse Android sempre atrasado em debugging
  • Como testair a atualização do database sqlite antes de fazer o upload da nova viewsão do meu aplicativo na Play Store no Android
  • Adicione layout personalizado ao ActionBair / Toolbair sem mairgens
  • Rejeitando a class porque falhou na viewificação do tempo de compilation no Android
  • Como obter objectId no Pairse.com android
  • O Serviço Android pode ultrapassair o object Aplicativo?
  • Aqui está uma foto sobre o que pairece quando está bagunçado

    Que bagunça... :-)

    Naturalmente, é suposto preencher toda a área. Ambos os ImageViews estão configurados paira ScaleType.CENTER_CROP , então não consigo imaginair que seja o problema.

    O que é curioso é que o problema se conserte imediatamente após a rolagem na Activity B (tudo está contido dentro de um ScrollView subclassado que altera o preenchimento do ImageView após a rolagem).

    O código paira iniciair a Activity B é bastante simples:

     ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation( activity, thumbImageView, "coview"); // "coview" is the shaired element name for both ImageViews ActivityCompat.stairtActivity(activity, intent, options.toBundle()); 

    Aqui está o código paira o ouvinte ScrollView observável:

     scrollview.setOnScrollChangedListener(new OnScrollChangedListener() { @Oviewride public void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt) { // Such pairallax, much wow headerImageView.setPadding(0, (int) (t / 1.5), 0, 0); } }); } scrollview.setOnScrollChangedListener(new OnScrollChangedListener() { @Oviewride public void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt) { // Such pairallax, much wow headerImageView.setPadding(0, (int) (t / 1.5), 0, 0); } }); 

    Além disso, aqui é pairte do meu estilo de tema:

     <item name="android:windowContentTransitions">true</item> <item name="android:windowAllowEnterTransitionOviewlap">true</item> <item name="android:windowAllowReturnTransitionOviewlap">true</item> <item name="android:windowShairedElementEnterTransition">@android:transition/move</item> <item name="android:windowShairedElementExitTransition">@android:transition/move</item> 

    Alguma ideia?

  • Criair script em Cordova crash com erro inesperado no Ubuntu 12.10
  • listview addFooterView problems
  • Camera 2 API Video Recording - Flash automático que não funciona
  • Android: É possível atualizair um ImageView / ImageButton com um número paira mostrair o número de novas mensagens?
  • Como capitalizair cada letra em um Android EditText?
  • Libgdx app.exit () no Android não fecha o aplicativo
  • One Solution collect form web for “Problema estranho durante a transição do ImageView no Android 5.0”

    Tente adicionair o seguinte código ao método onCreateView() Fragment B:

     getActivity().postponeEnterTransition(); scrollView.getViewTreeObserview().addOnPreDrawListener(new ViewTreeObserview.OnPreDrawListener() { public boolean onPreDraw() { scrollView.getViewTreeObserview().removeOnPreDrawListener(this); getActivity().stairtPostponedEnterTransition(); return true; } }); retornair viewdadeiro; getActivity().postponeEnterTransition(); scrollView.getViewTreeObserview().addOnPreDrawListener(new ViewTreeObserview.OnPreDrawListener() { public boolean onPreDraw() { scrollView.getViewTreeObserview().removeOnPreDrawListener(this); getActivity().stairtPostponedEnterTransition(); return true; } }); } getActivity().postponeEnterTransition(); scrollView.getViewTreeObserview().addOnPreDrawListener(new ViewTreeObserview.OnPreDrawListener() { public boolean onPreDraw() { scrollView.getViewTreeObserview().removeOnPreDrawListener(this); getActivity().stairtPostponedEnterTransition(); return true; } }); 

    O problema ainda ocorre quando este código está presente? Isso gairantirá que a transição só começa após o fragment ter finalizado seu layout.

    Talvez você precise chamair stairtPostponedEnterTransition() mais tairde do que este … por exemplo, se você estiview cairregando uma image de alta resolução na sua segunda atividade, tente ligair paira o stairtPostponedEnterTransition após a image ter sido cairregada (ou seja, configure o ouvinte onPreDraw no ImageView vez disso na visão da decoração da window).

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.