parameter must be a descendant of this view

先贴异常信息:
java.lang.IllegalArgumentException: parameter must be a descendant of
this view
at
android.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:4579)
at
android.view.ViewGroup.offsetDescendantRectToMyCoords(ViewGroup.java:4516)
at
android.view.ViewRootImpl.scrollToRectOrFocus(ViewRootImpl.java:3217)
at
android.view.ViewRootImpl.draw(ViewRootImpl.java:2719)
at
android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2666)
at
android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2278)
at
android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1066)
at
android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6245)
at
android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at
android.view.Choreographer.doCallbacks(Choreographer.java:580)
at
android.view.Choreographer.doFrame(Choreographer.java:550)
at
android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
at
android.os.Handler.handleCallback(Handler.java:733)
at
android.os.Handler.dispatchMessage(Handler.java:95)
at
android.os.Looper.loop(Looper.java:136)
at
android.app.ActivityThread.main(ActivityThread.java:5117)
at
java.lang.reflect.Method.invokeNative(Native Method)
at
java.lang.reflect.Method.invoke(Method.java:515)
at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at
dalvik.system.NativeStart.main(Native Method)

看一场没发现关于业务程序造成的遗产堆栈信息
,开始有点头大。茫茫大沙漠就只能搜寻点点滴滴的。
后发现于“http://stackoverflow.com/questions/7100555/preventing-catching-illegalargumentexception-parameter-must-be-a-descendant-of
”有点路子 尝试一下可以。
喷然欣慰。
至于解决的代码

View currentFocus =((Activity)mContext).getCurrentFocus();    if(currentFocus !=null){    
   currentFocus.clearFocus();    }
代码从字面理解上讲当前的获得的焦点的view
清理。
在说明下使用的背景:魅族手机上(其他手机没出现这样情况),在可展开BaseExpandableListAdapter适配子项中存在edittext编辑框,并且数据是超出一屏
。当即点击最后一项中的edittext弹出了软键盘 然后收缩父项后就出现异常。

时间: 2024-10-13 21:55:41

parameter must be a descendant of this view的相关文章

java.lang.IllegalArgumentException: parameter must be a descendant of this view

异常信息: java.lang.IllegalArgumentException: parameter must be a descendant of this view 错误原因: 发生这个错误主要是ListView或者其它ViewGroup等容器控件因为滑动而暂时移除子View,但却没有移除该子View上面的焦点Focus,所以在ListView滑动返回到原来的位置的时候没有恢复成原来的View,导致了该异常的产生,具体的源码分析可以查看参考链接[2] 解决方法: 解决办法就是清除掉List

Android之monkey Test

一.Monkey简介 Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行测试.Monkey测试是一种为了测试软件的稳定性.健壮性的快速有效的方法.   二.Monkey程序介绍 1) Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar: 2) Monkey.ja

ListView中多个EditText设置焦点 多次点击异常报错

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 a

关于MessageQueue-JNI的错误问题解决

11-19 14:46:23.016: E/MessageQueue-JNI(10777): Exception in MessageQueue callback: handleReceiveCallback 11-19 14:46:23.026: E/MessageQueue-JNI(10777): java.lang.IllegalArgumentException: parameter must be a descendant of this view 11-19 14:46:23.026

What is the Database Initialization Parameter That is Associated to an ORA-32004 Error ?

APPLIES TO: Oracle Database - Enterprise Edition - Version 9.2.0.1 to 11.2.0.3 [Release 9.2 to 11.2]Information in this document applies to any platform.***Checked for relevance on 24-Jan-2012*** GOAL How to know which parameter is obsolete and/or de

Android -- ViewDragHelper

SlidingPaneLayout和DrawerLayout,现在这俩个类被广泛的运用,其实研究他们的源码你会发现这两个类都运用了ViewDragHelper来处理拖动. ViewDragHelper并不是第一个用于分析手势处理的类,gesturedetector也是,但是在和拖动相关的手势分析方面gesturedetector只能说是勉为其难. 好的特点 ViewDragHelper.Callback是连接ViewDragHelper与view之间的桥梁(这个view一般是指拥子view的容器

Android的ViewDragHelper源码解析

其实我想看的是DrawerLayout, 但发现DrawerLayout里面是使用了ViewDragHelper去实现. 谷歌比较早就放出这个类了,但ViewDragHelper是开发中很少用到一个类.顾名思义这是一个和拖曳触摸有关的类. 本着追根溯源的想法, 加上ViewDragHelper的源码也不算多,就决定将ViewDragHelper的源码看一遍.对实现原理了解下. 代码一千多行,看完还是需要点时间的. 因此不会逐一讲完, 当然下面也会放出该类源码的解析,注释中也有一些个人理解的点写在

Viewdraghelper解析

2013年谷歌i/o大会上介绍了两个新的layout: SlidingPaneLayout和DrawerLayout,现在这俩个类被广泛的运用, 其实研究他们的源码你会发现这两个类都运用了ViewDragHelper来处理拖动.ViewDragHelper是framework中非常有用的一个工具. ViewDragHelper解决了android中手势处理过于复杂的问题,在DrawerLayout出现之前,侧滑菜单都是由第三方开源代码实现的,其中著名的当属MenuDrawer, 和sliding

SpringMVC源码阅读(二)

今天分析下ViewResolver和View的实现  下面是ModelAndView的实现 package org.springframework.web.servlet; import java.util.Map; import org.springframework.ui.ModelMap; import org.springframework.util.CollectionUtils; public class ModelAndView { /** View instance or vie