2016-03-21 19 views
3

ile çalışmıyor, ancak madde tıklamasında dalga etkisi paylaştı görülebilenDalgalanma etkisi Paylaşılan eleman geçişi var paylaşılan eleman geçiş ve RecyclerView

Başlangıç ​​Etkinliği asla Ben bu günlük mesaj

D/OpenGLRenderer: endAllStagingAnimators on 0x95e86600 (RippleDrawable) with handle 0xaa6c2760 

Ben kaldırırsanız fark

Intent intent = IntentUtils.createDetailsIntent(InspectionListFragment.this.getContext(), record); 
Bundle options = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity(), 
        view, getString(R.string.transition_element)).toBundle(); 
getActivity().startActivity(intent, options); 

eleman geçiş geçiş, dalgalanma çalışır (ve ben bu mesajı görmüyorum).

Gecikme Aktivite ben Aktivite başlatmak için postDelayed ile Handler kullanırsanız Handler

kullanmaya başlamak, sonuçları karışıktı. Ben dalgalanma bakın, ancak geçiş gibi yumuşak değil:

handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      Intent intent = IntentUtils.createDetailsIntent(InspectionListFragment.this.getContext(), record); 
      Bundle options = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity(), 
        view, getString(R.string.transition_element)).toBundle(); 
      getActivity().startActivity(intent, options); 
     } 
    }, 200); 

ListView bir aynı öğe düzeni ile ListView ve makeSceneTransitionAnimation kullanılarak ince çalıştığını

kullanılabildiğine dikkat edin. Ne yazık ki bu uygun değil.

Ben paylaşılan unsuru olarak kart içindeki bir ImageView varken aynı sorunu koştum

<LinearLayout 
    android:background="?android:attr/selectableItemBackground" 
    android:clickable="true" 
    android:focusable="true" 
+0

Tam olarak aynı soruna sahip olmak – jiawen

+0

Daha iyi bir çözüm bulamadım. ListView' ve RecyclerView' arasında neden böyle bir fark olduğunu anlamak istiyorum. – sidecarcat

cevap

0

öğe düzeni. Bunun yerine, paylaşılan öğe geçişi (ve dalgalanma etkisi) için kaynak görünümü olarak CardView'u kullanarak çözebiliyordum.

<android.support.v7.widget.CardView 
    android:id="@+id/itemCard" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="8dp" 
    app:cardCornerRadius="@dimen/card_corner_radius" 
    app:cardElevation="@dimen/card_elevation" 
    android:layout_gravity="center" 
    android:clickable="true" 
    android:onClick="@{onItemClick}" 
    android:foreground="?android:attr/selectableItemBackground" 
    > 

Veri bağlama kullanıyorum, ancak paylaşılan eleman değişikliği esasen sadece farklı kaynak görünümü seçerek edildi: Bundan önce

// before: 
//onItemClickListener.onItemClick(view, getAdapterPosition(), getItemId(), Pair.create((View)b.itemImage, "activity_image")); 

// after: 
onItemClickListener.onItemClick(view, getAdapterPosition(), getItemId(), Pair.create((View)b.itemCard, "activity_image")); 

, ben de kısa bir gecikmeyle postDelayed kullanarak çalıştı ama Bu yaklaşım benim sevme için navigasyona çok fazla gecikme ekledi.