Tôi có một số trang trí mục cơ bản để vẽ một số nội dung theo phương thức ItemDecoration.onDrawOver
.Làm thế nào để vô hiệu hóa bản vẽ trang trí mục RecyclerView trong thời gian hoạt ảnh mục
Điều này RecyclerView
cũng có DefaultItemAnimator
đặt trên đó. Hoạt ảnh đang hoạt động, tất cả đều tuyệt vời. Ngoại trừ một điều.
Khi tất cả các mục hiện có được hoán đổi với một mục mới được đặt trong bộ điều hợp này, các đồ trang trí sẽ được hiển thị trong khi hoạt ảnh đang chạy.
Tôi cần một cách để ẩn chúng. Khi hoạt ảnh kết thúc, chúng cần được hiển thị, nhưng trong khi nó đang chạy, chúng phải được ẩn.
tôi thử như sau:
public void onDrawOver(..., RecyclerView.State state) {
if(state.willRunPredictiveAnimations() || state.willRunSimpleAnimations()) {
return;
}
// else do drawing stuff here
}
nhưng điều này không giúp. Trang trí chỉ bị xóa trong khoảng thời gian ngắn hoạt ảnh, nhưng sau đó xuất hiện lại trong khi vẫn đang chạy.
Thiết lập cũng bao gồm RecyclerView.Adapter
trong đó hasStableIds() (trong trường hợp bit đó quan trọng).
Sử dụng phương pháp này làm cho đồ trang trí biến mất trong giây lát và sau đó xuất hiện lại sau hoạt ảnh mà tôi thấy không đẹp bằng cách làm đồ trang trí. Tuy nhiên, 1 anyway vì 'getItemAnimator(). IsRunning()' là thông tin hữu ích. :) –
@LorneLaliberte có, tôi thấy rằng tác dụng phụ không may quá. Nếu bạn tìm thấy một cách xung quanh, xin vui lòng chia sẻ ... – dimsuz
Xem câu trả lời của tôi cho một cách tiếp cận mà giải quyết điều này bằng cách làm động các đồ trang trí cùng với các hình ảnh động mặc định. –