2014-12-10 13 views
6

Tôi có một rippleDrawable mà tôi đang sử dụng như là nền tảng cho một LinearLayout:hiệu lực Ripple không xảy ra khi sử dụng cũng makeSceneTransitionAnimation

<LinearLayout 
    android:id="@+id/card_layout" 
    android:layout_width="match_parent" 
    android:layout_height="50dp" 
    android:layout_alignParentBottom="true" 
    android:clickable="true" 
    android:background="@drawable/ripple" 
    android:orientation="vertical" > 

Tôi muốn bắt đầu một hoạt động onClick mới của cách bố trí. Khi tôi chỉ làm một startActivity(), hiệu ứng gợn hoạt động tốt - bạn có thể thấy hầu hết hiệu ứng gợn xảy ra, sau đó màn hình mới được hiển thị.

Tuy nhiên, nếu tôi bắt đầu hoạt động bằng cách sử dụng ActivityOptionsCompat.makeSceneTransitionAnimation, hiệu ứng gợn sóng sẽ không xảy ra khi tôi nhấn vào bố cục. Lưu ý, nhấn lâu vẫn hiển thị gợn trong trường hợp này.

Tôi cũng đã thử nút này trên một nút và thấy kết quả tương tự.

Vì vậy, nó giống như makeSceneTransitionAnimation đang diễn ra quá nhanh hoặc ghi đè hiệu ứng gợn sóng. Tôi muốn các gợn để kết thúc hoặc ít nhất có một số của nó được nhìn thấy trước khi các cảnh chuyển tiếp hình ảnh động xảy ra. Tôi không chắc chắn nếu điều này đã làm với các gợn và quá trình chuyển đổi cạnh tranh trên các chủ đề render?

Tôi đã cố gắng hoãn gửiEnterTransition trên hoạt động được gọi. Nhưng điều này không hiệu quả - hoạt động được gọi vẫn hiển thị ngay lập tức và sau đó quá trình chuyển đổi bị hoãn lại cho đến khi bạn bắt đầu lại.

Bất kỳ ai có bất kỳ ý tưởng nào về những gì tôi có thể làm sai?

Tôi đang sử dụng API 21 (không có AppCompat). Cảm ơn trước sự giúp đỡ nào.

+1

Bạn đã xoay xở để giải quyết vấn đề này bằng cách nào đó? –

+0

@ChristerNordvik Không, tôi chưa tìm được giải pháp cho điều này. – Scott

+0

Tôi gặp vấn đề tương tự khi sử dụng AppCompat. – sidecarcat

Trả lời

4

Không phải 100% chắc chắn tôi trả lời câu hỏi của bạn nhưng tôi có một vấn đề mà âm thanh tương tự với hiệu ứng gợn không kết thúc khi tôi bắt đầu một hoạt động mới, vì vậy tôi đã kết thúc bằng một handler với một sự chậm trễ trong OnClickListener:

Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
     startActivity(intent); 
    } 
}, 150); 
+0

Cảm ơn timothyjc. Tôi đã cố gắng với một sự chậm trễ 150 nhưng điều này thường dẫn đến một quá trình chuyển đổi không trơn tru, bạn có thể thấy rõ điểm dừng sau 150 phần lớn thời gian. Thật thú vị, khi tôi đặt độ trễ là 0, quá trình chuyển đổi mượt mà hơn và tôi thường thấy một số hoặc tất cả các gợn sóng. Nếu không có trình xử lý, quá trình chuyển đổi diễn ra suôn sẻ nhưng tôi hiếm khi thấy gợn sóng. – Scott

+0

Tôi gặp vấn đề tương tự – jiawen

+0

Làm cho nó 200 và nó hoạt động tốt. Cảm ơn! – stef

Các vấn đề liên quan