【发布时间】:2011-09-25 11:51:05
【问题描述】:
先介绍一点背景:
我在滚动视图中有一个布局。起初,当用户在屏幕上滚动时,滚动视图滚动。但是,经过一定量的滚动后,我要禁用滚动视图上的滚动,将“滚动焦点”移动到子布局内的 web 视图上。这样,scrollview 会粘住,所有的滚动事件都会转到里面的 webview。
因此,对于一个解决方案,当达到滚动阈值时,我从滚动视图中删除子布局并将其放在滚动视图的父级中。(并使滚动视图不可见)。
// 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 -> 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。
【问题讨论】:
标签: android scrollview