2015-06-06 10 views
12

मैं अपने पुनर्चक्रण में वाई दिशा में कुछ निश्चित पिक्सेल द्वारा स्क्रॉल करना चाहता हूं। मुझे पता है कि scrollToPosition() या scrollToPositionWithOffset() जैसी विधियां हैं। हालांकि, वे वास्तव में मेरी जरूरतों को पूरा नहीं करते हैं।एंड्रॉइड रीसाइक्लिंग व्यू और लेआउट मैनेजर के साथ scrollVerticallyBy() का उपयोग कैसे करें?

मैंने देखा कि LayoutManager एक विधि scrollVerticallyBy(int dy, RecyclerView.Recycler recycler, RecyclerView.State state) प्रदान करता है। ऐसा लगता है कि मैं क्या चाहता हूं।

मैं इसका उपयोग कैसे करूं? recycler और state क्या हैं? मुझे ऑनलाइन कोई उदाहरण नहीं मिला, इसलिए कुछ कोड उपयोगी होंगे।

+1

क्या आपको कोई समाधान मिला? –

उत्तर

6

मुझे scrollVerticallyBy के बारे में पता नहीं है, जो RecyclerView के लिए एक आंतरिक विधि की तरह दिखता है। क्या आप बस scrollBy(int x, int y) और smoothScrollBy(int dx, int dy) के तरीकों की तलाश नहीं कर रहे हैं?

प्रलेखन से:

सार्वजनिक शून्य scrollBy (int x, int y)

आपके विचार का स्क्रॉल स्थिति में ले जाएँ। इससे स्क्रॉल चेंज (int, int, int, int) पर कॉल होगा और दृश्य को अमान्य कर दिया जाएगा।

पैरामीटर
एक्स int: क्षैतिज
y पूर्णांक द्वारा स्क्रॉल करने के लिए पिक्सल की राशि: खड़ी

से स्क्रॉल करने के लिए पिक्सल की राशि तुम इतनी तरह तरीकों का उपयोग कर सकते हैं:

recyclerView.scrollBy(0, 50); //Scroll 50 pixels down 
recyclerView.scrollBy(0, -50); //Scroll 50 pixels up 

वही smoothScrollBy के लिए जाता है।

+0

रूबेन पूरी तरह से सही है, 'scrollVerticallyBy' एक आंतरिक विधि है जिसे आप कस्टम लेआउट मैनेजर बनाते समय ओवरराइड करते हैं। इसके उपयोग के बारे में अधिक जानकारी के लिए [यहां देखें] (http://wiresareobsolete.com/2014/09/building-a-recyclerview-layoutmanager-part-1/) –

+1

scrollBy (int x, int y) और smoothScrollBy (int dx, int dy) RecyclerView में समर्थित नहीं है, इसलिए आपका सुझाव काम नहीं करेगा –

+1

"समर्थित नहीं है" का क्या मतलब है? मैंने एक परियोजना में उन विधियों का उपयोग किया और उन्होंने ठीक काम किया। – rubengees

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