Xuất hiện sự cố với thời lượng cần thiết để hoàn thành hoạt ảnh, cùng vấn đề với smoothScrollBy (khoảng cách int, thời lượng int), lướt qua lướt qua, smoothScrollToPosition() là trình bao bọc thân thiện xung quanh smoothScrollBy() smoothScrollBy() lần lượt là giả mạo một "cử chỉ tẩu thoát", như thể một người dùng đã thực hiện chuyển động.
smoothScrollBy thực sự chỉ cần đăng tải runnable tiếp tục tự repost cho đến khi thời lượng chạy Có nghĩa là nó đơn giản tính toán bù di chuyển cần thiết dựa trên độ lệch mà trước đó nó quyết định di chuyển đến, do đó nếu hết thời gian trước khi nó đạt đến giá trị bù mục tiêu, nó dừng lại ở mức bù trừ cuối cùng được tính toán. để bù đắp mục tiêu, đó là perhap s nhiều hơn vì nó sẽ không được hoạt hình). Khó khăn cho những kẻ Android đang xác định bao nhiêu để di chuyển bởi mỗi cuộc gọi chạy() để đạt được yêu cầu bù đắp bởi vì các tế bào ListView (trẻ em) là hoàn toàn năng động về chiều cao, vì vậy họ không thể chỉ làm một phép tính khoảng cách đơn giản vì chiều cao của trẻ em không thể nhìn thấy không được biết đến. Đó là lý do tương tự thanh cuộn Android có thể dao động kích thước khi bạn di chuyển, nó phải có một dự đoán tốt nhất tại mức độ lớn nó nên dựa trên những gì nó hiện đang nhìn thấy.
Dù sao điều đó không giúp bạn giải quyết nó nhưng một số người ta có thể tìm thấy nó thú vị :)
Nếu bạn biết bạn có chiều cao tế bào tĩnh tuy nhiên, bạn có thể viết phương pháp riêng của bạn để tính toán khoảng cách và thời gian để vượt qua tự smoothScrollBy() và có một khoảng thời gian tĩnh để di chuyển khoảng cách X. Nếu không, nó sẽ phải đủ để sử dụng giải pháp bigstones được đăng, điều này thực sự đang hoạt động vì SCROLL_DURATION cao hơn 1000ms. Bạn có thể sử dụng phiên bản ICS và thay đổi thuộc tính này, thay vì sử dụng phiên bản 2.2, không phải là nguyên nhân gốc.
Bạn cũng có thể điều chỉnh các runnables đó bằng thuật toán tùy chỉnh của riêng mình, không quá khó để chỉnh sửa mọi thứ.
Nguồn
2012-09-14 05:24:43
Tôi gặp sự cố tương tự. http://code.google.com/p/android/issues/detail?id=37278 – bigstones
Tôi đã đăng ở đó một giải pháp thay thế. – bigstones
Dường như nó được cố định trong Jellybean. –