Önce biraz arka plan:
Bir kaydırma görüntüsünün içinde bir düzen var. İlk başta, kullanıcı ekranda ilerlediğinde kaydırma görünümü kayar. Ancak, belirli bir miktar kaydırmadan sonra, kaydırma görünümündeki kaydırmayı devre dışı bırakmak için "kaydırma odağını" alt yerleşimin içindeki bir web görünümüne taşıyordum. Bu şekilde, kaydırma görünümü çubukları ve tüm kaydırma etkinlikleri içindeki web görünümüne gider.
Bu nedenle, bir çözüm için, kaydırma eşiğine ulaşıldığında, çocuk mizanpajını kaydırma görünümünden kaldırırım ve kaydırma görüntüsünün üst öğesine koyarım. (Ve kaydırma görünümünü görünmez yapar).
// 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);
Genel Fikir: (-> içerir içerir)
Önce: parentlayout -> scrollview -> scrollChildLayout
Sonra: parentLayout -> scrollChildLayout
Yukarıdaki kod bana bu istisnayı veriyor:
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)
Neler olduğunu biliyor musun? Ben açıkça ebeveyn üzerinde removeView çağırıyorum.