Tag: illegalargumentexception viewroot

防止/捕获“IllegalArgumentException:参数必须是此视图的后代”错误

我有一个ListView与一些可调焦的组件(主要是EditText的)。 是的,我知道这不是完全推荐,但总的来说,几乎所有的东西都运行良好,重点放在了必须去的地方(只需要进行一些调整)。 无论如何,我的问题是用手指滚动列表时出现奇怪的竞态条件,然后在显示IME键盘时突然使用轨迹球。 有些东西必须走出界限,并在此处offsetRectBetweenParentAndChild()方法,并抛出IllegalArgumentException 。 问题是,这个exception抛出任何块,我可以插入try / catch(据我所知)。 所以这个问题有两个有效的解决scheme: 有人知道为什么抛出这个exception,以及如何阻止它发生 有人知道如何把一个try / catch块放在什么地方,至less让我的应用程序能够存活。 据我所知,问题是关注的问题,所以绝对不应该杀死我的应用程序(这是做什么)。 我试图覆盖ViewGroup的方法,但这两个offset*方法被标记为final。 堆栈跟踪: 08-17 18:23:09.825: ERROR/AndroidRuntime(1608): FATAL EXCEPTION: main 08-17 18:23:09.825: ERROR/AndroidRuntime(1608): java.lang.IllegalArgumentException: parameter must be a descendant of this view 08-17 18:23:09.825: ERROR/AndroidRuntime(1608): at android.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:2633) 08-17 18:23:09.825: ERROR/AndroidRuntime(1608): at android.view.ViewGroup.offsetDescendantRectToMyCoords(ViewGroup.java:2570) 08-17 18:23:09.825: ERROR/AndroidRuntime(1608): at android.view.ViewRoot.scrollToRectOrFocus(ViewRoot.java:1624) 08-17 18:23:09.825: ERROR/AndroidRuntime(1608): at android.view.ViewRoot.draw(ViewRoot.java:1357) 08-17 […]