2011-06-20 10 views
5

मैं स्क्रॉलिंग अक्षम करने के लिए एक कस्टम गैलरी बनाने का प्रयास कर रहा हूं। मैं इस से निम्नलिखित है: how to disable gallery view scrollingस्क्रॉलिंग अक्षम करने के लिए एंड्रॉइड कस्टम गैलरी

public class MyGallery extends Gallery{ 


public MyGallery(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 

@Override 
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY){ 
    if (isSelected()) 
     return true; 
    else return super.onFling(e1, e2, velocityX, velocityY); 
    } 

} 

काम करने नहीं करता है लगता है। मैं क्या गलत कर रहा हूं?

+0

कभी भी इसका उपयोग करके स्क्रॉलिंग अक्षम करें? –

उत्तर

2

उदाहरण के लिए if (isSelected()) खंड नोट करें, तो आप इसे छोड़ना चाहते हैं और बिना शर्त रूप से true लौटा सकते हैं, पूरी तरह विरासत कार्यान्वयन से परहेज कर सकते हैं।

ओवरराइडिंग onFling फ़्लिंग्स को रोकता है लेकिन उंगली के साथ नियमित स्क्रॉलिंग को प्रभावित नहीं करता है। ऐसा करने के लिए, onScroll को ओवरराइड करने का प्रयास करें और तुरंत वहां से सत्य लौटाना।

यदि यह या तो काम नहीं करता है, तो आप onTouchEvent को ओवरराइड भी कर सकते हैं और वहां स्पर्श ईवेंट ईवेंट कर सकते हैं।

0

मैंने लाइनरलेआउट में कस्टमलिस्टव्यू का उपयोग किया है। और नीचे कोड

public void enableDisableView(View view, boolean enabled) { 
     view.setEnabled(enabled); 

     if (view instanceof ViewGroup) { 
      ViewGroup group = (ViewGroup)view; 

      for (int idx = 0 ; idx < group.getChildCount() ; idx++) { 
       enableDisableView(group.getChildAt(idx), enabled); 
      } 
     } 
    } 
संबंधित मुद्दे