मैं इस तरह scrollview में एक RecyclerView था:RecyclerView, कुछ आइटम नहीं दिखाए जाते हैं
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--other stuff-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"/>
</LinearLayout>
<!--other stuff-->
</ScrollView>
और RecyclerView
के आइटम एक RelativeLayout
, जिनमें से अंदर है एक EditText
और अन्य विचार है। उस RelativeLayout
और EditText
दोनों wrap_content
दोनों हैं। उपयोगकर्ता उस EditText
में लंबाई/रेखाओं की सीमा के बिना इनपुट कर सकता है ताकि प्रत्येक आइटम की ऊंचाई अलग हो।
तब मैंने पाया कि getItemCount()
Adapter
में वास्तविक मूल्य लौटाता है लेकिन onBindViewHolder()
गलत समय (इसे से कम होना चाहिए) कहा जाता है, इस प्रकार सभी वस्तुओं को दिखाने के लिए पर्याप्त नहीं है।
मुझे पता चला कि यह तब होगा जब मैंने recyclerView.setNestedScrollingEnabled(false)
लिखा था। लेकिन मैं इस लाइन को नहीं हटा सकता। क्योंकि अगर मैंने ऐसा किया, तो RecyclerView
आसानी से स्क्रॉल नहीं करेगा और ScrollView
और ScrollView
के अंदर अन्य विचारों के साथ सामंजस्यपूर्ण नहीं होगा।
यह 6.0 पर होता है लेकिन 4.1 पर नहीं होता है।
मैंने इस पृष्ठ पर Google के साथ संवाद किया: https://code.google.com/p/android/issues/detail?id=213914 और उसने मुझे बताया कि यह RecyclerView
के लिए एक बग फिक्स है। आप उस पृष्ठ पर जा सकते हैं ताकि आप प्रश्न और मेरे लक्ष्य को बेहतर ढंग से समझ सकें (वहां समस्या दिखाने के लिए एक छोटा सा नमूना प्रोजेक्ट है)। मैं अब भी उससे सहमत नहीं हूं और मैं समस्या को हल करना चाहता हूं। कृपया मदद करें, अग्रिम धन्यवाद।
कोशिश: fillViewport = "true" scrollview –
@LucasPaolillo खैर, यह मदद नहीं करता है। – ywwynm
एंड्रॉइड के साथ: fillViewPort = "true", रैखिक लेआउट ऊंचाई को match_parent –