Pertama sedikit latar belakang:
Saya memiliki tata letak di dalam scrollview. Pada awalnya, ketika pengguna menggulir di layar, scrollview akan bergulir. Namun, setelah sejumlah gulir, saya harus menonaktifkan gulir pada gulir, melihat pindahkan "gulir fokus" ke tampilan web di dalam tata letak anak. Dengan cara ini, scrollview stick dan semua acara scroll pergi ke tampilan web di dalamnya.
Jadi, untuk solusi, ketika ambang gulir tercapai, saya menghapus tata letak anak dari scrollview dan meletakkannya di induk scrollview. (Dan membuat scrollview tidak terlihat).
// 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);
Gagasan Umum: (-> berarti mengandung)
Sebelum: parentlayout -> scrollview -> scrollChildLayout
Setelah: parentLayout -> scrollChildLayout
Kode di atas memberi saya pengecualian ini:
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)
Apakah Anda tahu apa yang sedang terjadi? Saya jelas memanggil removeView pada induknya.