2015-02-07 14 views
7

क्या पुनर्चक्रण दृश्य के अंदर सामग्री की ऊंचाई प्राप्त करने का कोई अच्छा तरीका है? सभी वस्तुओं को ध्यान में रखते हुए अलग-अलग ऊंचाई हो सकती है।पुनर्चक्रण सामग्री देखें ऊंचाई

मेरे परिदृश्य में मैं एक LinearLayoutManager का उपयोग कर रहा हूं।

मैंने इस समस्या के लिए चारों ओर खोज की है और आश्चर्यजनक रूप से कुछ परिणाम पाये हैं।

उत्तर

12

पुनर्चक्रण दृश्य ViewGroup है। विचार देखने के लिए आप getChildAt/getChildCount का उपयोग कर सकते हैं। फिर दृश्य से, आप getWidth/getHeight पर कॉल कर सकते हैं।

यदि आपके पास आइटमडिकोटर हैं और उन्हें आकार प्राप्त करने की आवश्यकता है, तो आप LayoutManager की getDecorated<xxx> विधियों का उपयोग कर सकते हैं। पंक्तियों वर्तमान में प्रदर्शित किया जा रहा की ऊंचाई यह औसत और गुणा कि चौड़ाई के लिए getItemCount

computeHorizontalScrollRange का परिणाम द्वारा यदि आप कर रहे हैं उन्मुखीकरण क्षैतिज है -

+4

RECYCLERView की प्रकृति को ध्यान में रखते हुए, क्या वह वास्तव में बच्चे के विचारों को प्राप्त नहीं करेगा जो वास्तव में बनाए गए हैं? मान लें कि मेरे पास 100 आइटम हैं, शायद केवल 10 विचार फुलाए गए हैं और पुनर्नवीनीकरण किए गए हैं। – Kenneth

+0

यदि आप उन वस्तुओं की ऊंचाई प्राप्त करने की कोशिश कर रहे हैं जो निर्धारित नहीं हैं, तो आप ऐसा नहीं कर सकते क्योंकि उन्हें नहीं रखा गया है। इसके लिए कोई समाधान नहीं हो सकता है, इसके अलावा प्रत्येक आइटम को छोड़कर, जो RecyclerView का उपयोग करने के उद्देश्य को हरा देता है। – yigit

+0

लेकिन RecylerView स्क्रॉलबार को सही ढंग से लेआउट करने के लिए पर्याप्त जानता है, इसलिए इसे इसकी सामग्री की ऊंचाई के बारे में कुछ पता होना चाहिए? – Kenneth

19

RecyclerView.computeVerticalScrollRange एक अनुमान दे देंगे।

+2

यह एक स्वीकार्य उत्तर होना चाहिए। –

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