พื้นหลังเล็กน้อยก่อน:
ฉันมีเค้าโครงภายใน scrollview ในตอนแรกเมื่อผู้ใช้เลื่อนบนหน้าจอ scrollview จะเลื่อน อย่างไรก็ตามหลังจากเลื่อนจำนวนหนึ่งฉันต้องปิดใช้งานการเลื่อนในมุมมองเลื่อนการย้าย "เลื่อนโฟกัส" ไปยัง webview ภายในเค้าโครงเด็ก ด้วยวิธีนี้แถบเลื่อนและกิจกรรมการเลื่อนทั้งหมดจะไปที่มุมมองเว็บด้านใน
ดังนั้นสำหรับวิธีแก้ปัญหาเมื่อถึงขีด จำกัด การเลื่อนฉันจะลบเลย์เอาต์ลูกออกจาก scrollview และวางไว้ในพาเรนต์ของ scrollview (และทำให้ scrollview ล่องหน)
// 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 -> scrollview -> scrollChildLayout
หลัง: parentLayout -> scrollChildLayout
รหัสข้างต้นให้ข้อยกเว้นนี้แก่ฉัน:
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)
คุณรู้หรือไม่ว่าเกิดอะไรขึ้น ฉันกำลังเรียก RemoveView อย่างชัดเจนบนพาเรนต์