2015-11-29 8 views
6

पर काम नहीं कर रहा है मेरे पास एक फ्लोटिंग एक्शन बटन (एफएबी) और एक असिंक टास्क है जो पृष्ठभूमि में कुछ डेटा लोड करने से पहले FAB.hide() को कॉल करता है, और FAB.show() इसे पूरा करने के बाद। किसी कारण से, भले ही मेरा कंसोल लॉग स्पष्ट रूप से दिखाता है कि कॉल को हमेशा छिपाने के लिए बनाया जा रहा है() और फिर दिखाएं(), कभी-कभी एफएबी छुपाता है लेकिन कार्य तब तक प्रदर्शित नहीं होता है जब तक कार्य को फिर से निष्पादित नहीं किया जाता है।एंड्रॉइड फ्लोटिंग एक्शन बटन शो()

अद्यतन

समस्या होने के लिए करता है, तो कॉल के बहुत नज़दीक हैं लगता है। मैंने वास्तव में कोड की कोशिश की:

fab.hide(); 
fab.show(); 

और एक ही समस्या होती है (फैब प्रदर्शित नहीं हो रहा है)। इसे संभालने के लिए कोई विचार?

उत्तर

11

अद्यतन: noted on the Issue Tracker के रूप में, यह समस्या समर्थन पुस्तकालय के संस्करण 24.2.0 के रूप में तय की गई है।


मैं इसी तरह की स्थिति में आया। समस्या यह प्रतीत होती है कि फ़्लोटिंग एक्शन बटन खुद को दिखाया या छुपा नहीं जाता है जब तक कि यह शो/छुपा एनीमेशन समाप्त हो गया हो।

तो यदि आप hide(); पर कॉल करते हैं, तो फिर छुपा एनीमेशन समाप्त होने से पहले show(); पर कॉल करें, तो शो एनीमेशन नहीं चलाएगा क्योंकि बटन अभी भी दिखाए गए राज्य में पहले से ही सेट है।

अगर यह इष्टतम समाधान है मैं नहीं जानता, लेकिन इस प्रकार मैं इसे हल:

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); 
} 

इस श्रोता हम इन बाधित परिस्थितियों से निपटने कर सकते हैं के साथ हमारे अपने बूलियन की स्थापना करके। जब हम एनीमेशन के अंत तक पहुंच जाते हैं तो हम जांचते हैं कि क्या हम उस राज्य में हैं जो हम वास्तव में बनना चाहते हैं, और यदि हम सही नहीं होते हैं।

4

समर्थन पुस्तकालय 24.2.0 में फिक्स्ड:

https://code.google.com/p/android/issues/detail?id=216469

+0

अरे !!! वह यह था !!! पोस्ट का उपयोग करके मुझे पागल गाड़ी चला रही है और वहां लाइब्रेरी को अपडेट करने से चाल चल रही है। धन्यवाद महोदय! – rupps

संबंधित मुद्दे