2012-09-06 35 views
5

पर ध्यान केंद्रित करता है मैं अपने मुख्य लेआउट के रूप में एक स्लाइडिंग ड्रावर का उपयोग करता हूं। सामग्री क्षेत्र के अंदर मेरे पास एक टुकड़ा है (जिसमें एक सूची दृश्य है) जब गतिविधि पहले लोड करता है तो सबकुछ बढ़िया होता है, सूचीदृश्य सही ढंग से स्क्रॉल करता है।स्लाइडिंग ड्रावर में ListViewResume

जब मैं एक अलग गतिविधि शुरू करता हूं और फिर वापस आ जाता हूं, तो पहले स्क्रॉल गति को मैं स्लीडइंड ड्रावर द्वारा अवरुद्ध करता हूं, और या तो इसे खोलता या बंद करता है। जैसे ही आप स्क्रॉल को रोकते हैं और अपनी उंगली उठाते हैं, ListView फिर से स्क्रॉल करने में सक्षम होता है।

मैं सूची दृश्य को फिर से शुरू करने के लिए सूची दृश्य को स्क्रॉल करने में सक्षम होना चाहता हूं। और आमतौर पर यह नियंत्रित करने में सक्षम हो सकता है कि स्लाइडिंग ड्रावर फोकस कर रहा है या नहीं।

अद्यतन:

मैं थोड़ा नीचे मुद्दा संकुचित है। मैंने निम्नलिखित कोड के साथ हैंडल में बटन पर क्लिक करने के लिए स्लाइडिंग ड्रावर को विस्तारित किया है।

Override 
public boolean onInterceptTouchEvent(MotionEvent event) { 
    super.onInterceptTouchEvent(event); 

    if (mHandleLayout != null) { 
     int clickX = (int) (event.getX() - mHandleLayout.getLeft()); 
     int clickY = (int) (event.getY() - mHandleLayout.getTop()); 

     if (isAnyClickableChildHit(mHandleLayout, clickX, clickY)) 
      return false; 
    } 
    return super.onInterceptTouchEvent(event); 
} 

private boolean isAnyClickableChildHit(ViewGroup viewGroup, int clickX, int clickY) { 
    for (int i = 0; i < viewGroup.getChildCount(); i++) { 
     View childView = viewGroup.getChildAt(i); 

     if (TAG_CLICK_INTERCEPTED.equals(childView.getTag())) { 
      childView.getHitRect(mHitRect); 

      if (mHitRect.contains(clickX, clickY)) 
       return true; 
     } 

     if (childView instanceof ViewGroup && isAnyClickableChildHit((ViewGroup) childView, clickX, clickY)) 
      return true; 
    } 
    return false; 
} 

यदि मैं ऑन इंटरसेप्ट टचवेन्ट फ़ंक्शन पर टिप्पणी करता हूं, तो सब कुछ सामान्य रूप से काम करता प्रतीत होता है।

उत्तर

0

मैंने देखा कि आप super.onInterceptTouchEvent(event) को दो बार कॉल कर रहे हैं। क्यूं कर? यह समस्या का कारण हो सकता है।

+0

वैसे हाँ इस मुद्दे का कारण है। हालांकि, पहली पंक्ति में इसे जाने का कारण यह है कि क्लिक करने योग्य बटनों को खींचने पर भी कार्रवाई को खींचना सक्षम है। मैंने गतिविधि को फिर से शुरू करने के बाद दो घटनाओं के लिए पहले सुपर.ऑनटेरसेप्ट टचएवेंट को अक्षम करके इस मुद्दे को कम कर दिया है। – Leo