CẬP NHẬT: Là noted on the Issue Tracker, sự cố này đã được khắc phục như phiên bản 24.2.0 của thư viện hỗ trợ.
Tôi gặp phải tình huống tương tự. Vấn đề có vẻ là nút hành động nổi không tự coi là hiển thị hoặc ẩn cho đến khi hiển thị/ẩn hoạt ảnh là hoàn thành.
Vì vậy, nếu bạn gọi hide();
nhưng sau đó gọi show();
trước khi hoạt ảnh ẩn hoàn tất, khi đó hoạt ảnh hiển thị sẽ không chạy vì nút vẫn được đặt ở trạng thái đã hiển thị.
Tôi không biết nếu điều này là giải pháp tối ưu nhưng tôi giải quyết nó như sau:
boolean fabShouldBeShown;
FloatingActionButton.OnVisibilityChangedListener fabListener = new FloatingActionButton.OnVisibilityChangedListener() {
@Override
public void onShown(FloatingActionButton fab) {
super.onShown(fab);
if(!fabShouldBeShown){
fab.hide();
}
}
@Override
public void onHidden(FloatingActionButton fab) {
super.onHidden(fab);
if(fabShouldBeShown){
fab.show();
}
}
};
public void methodWhereFabIsHidden() {
fabShouldBeShown = false;
myFab.hide(fabListener);
}
public void methodWhereFabIsShown() {
fabShouldBeShown = true;
myFab.show(fabListener);
}
Bằng cách đặt boolean của chúng ta cùng với người nghe này, chúng ta có thể đối phó với những tình huống gián đoạn. Khi chúng tôi đến cuối phim hoạt hình, chúng tôi kiểm tra xem liệu chúng tôi có ở trong trạng thái mà chúng tôi thực sự muốn không, và nếu chúng tôi không thay đổi đúng.
Nguồn
2016-01-28 19:14:42
argh !!! Điều đó là vậy đó !!! lái xe cho tôi điên bằng cách sử dụng postDelayed ở đây và ở đó nhưng cập nhật các thư viện đã làm các trick. cảm ơn ngài! – rupps