पहले थोड़ा बैकग्राउंड:
मेरे पास एक स्क्रॉलव्यू के अंदर एक लेआउट है। सबसे पहले, जब उपयोगकर्ता स्क्रीन पर स्क्रॉल करता है, तो स्क्रॉलव्यू स्क्रॉल करता है। हालाँकि, एक निश्चित मात्रा में स्क्रॉल करने के बाद, मुझे स्क्रॉल पर स्क्रॉल को अक्षम करना था कि "लेआउट फ़ोकस" को बाल लेआउट के अंदर एक वेबव्यू पर ले जाएं। इस तरह, स्क्रोलव्यू चिपक जाता है और सभी स्क्रॉल इवेंट इसके अंदर वेबव्यू पर चले जाते हैं।
इसलिए, एक समाधान के लिए, जब स्क्रॉल थ्रेशोल्ड पहुंच जाता है, तो मैं स्क्रॉलव्यू से चाइल्ड लेआउट को हटा देता हूं और इसे स्क्रॉलव्यू के माता-पिता में डाल देता हूं। (और स्क्रॉलव्यू को अदृश्य बना देता हूं)।
// Remove the child view from the scroll view
scrollView.removeView(scrollChildLayout);
// Get scroll view out of the way
scrollView.setVisibility(View.GONE);
// Put the child view into scrollview's parent view
parentLayout.addView(scrollChildLayout);
सामान्य विचार: (-> का अर्थ है)
इससे पहले: पेरेंटेलआउट -> स्क्रॉलव्यू -> स्क्रॉलचिल्डआउट
के बाद: parentLayout -> स्क्रॉलचिल्डआउट
उपरोक्त कोड मुझे यह अपवाद दे रहा है:
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
at android.view.ViewGroup.addViewInner(ViewGroup.java:1976)
at android.view.ViewGroup.addView(ViewGroup.java:1871)
at android.view.ViewGroup.addView(ViewGroup.java:1828)
at android.view.ViewGroup.addView(ViewGroup.java:1808)
क्या आप जानते हैं कि क्या हो रहा है? मैं माता-पिता को स्पष्ट रूप से हटाने वाला दृश्य कह रहा हूं।