2012-09-01 12 views
5

मैं व्यूपार्जर को केवल एक दिशा में स्क्रॉल करने से कैसे रोक सकता हूं। उदाहरण के लिए, केवल स्वाइप को स्वाइप करने की अनुमति दें, लेकिन बाईं ओर नहीं। मैं बिल्कुल अटक गया हूं, किसी भी मदद की सराहना की जाएगी। ध्यान दें कि मुझे इसे Android संस्करण 2.2 के लिए काम करने की आवश्यकता है, इसलिए मैं ViewPager के लिए compatibilty लाइब्रेरी का उपयोग कर रहा हूं।व्यूपेज एक निश्चित दिशा में स्वाइप करना बंद करें

अग्रिम

उत्तर

6

धन्यवाद आप अपनी खुद की ViewPager कि मूल ViewPager फैली बनाने के लिए और onTouchEvent विधि

public class CustomViewPager extends ViewPager { 

    float lastX = 0; 

    boolean lockScroll = false; 

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

    public CustomViewPager(Context context) { 
     super(context); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent ev) { 

     switch (ev.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
      lastX = ev.getX(); 
      lockScroll = false; 
      return super.onTouchEvent(ev); 
     case MotionEvent.ACTION_MOVE: 

      if (lastX > ev.getX()) { 
       lockScroll = false; 
      } else { 
       lockScroll = true; 
      } 

      lastX = ev.getX(); 
      break; 
     } 

     lastX = ev.getX(); 

     if(lockScroll) { 
      return false; 
     } else { 
      return super.onTouchEvent(ev); 
     } 

    } 



} 
+0

हाय अली ओवरराइड करने के लिए होगा - दुर्भाग्य से, यह काम नहीं करता। मैंने टचवेवेंट कार्यक्रम की भी कोशिश की, लेकिन हां, कोई खुशी नहीं। –

+0

एक और चाल, जब आप अगले दृश्य पर स्क्रॉल करते हैं, तो पहले को हटाएं। मैं कुछ मिनटों के बाद अद्यतन करूंगा। –

+1

मैंने अपना जवाब अपडेट किया, मैंने नए कोड का परीक्षण किया और यह काम किया। –