java.lang.IllegalArgumentException异常:参数必须是这一观点的错误的

2019-06-25 08:41发布

我有一个ViewGroup中一个奇怪的错误。 对于我的主视图我使用的类在这个环节ViewFlow项目

    java.lang.IllegalArgumentException: parameter must be a descendant of this view
        at android.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:4153)
        at android.view.ViewGroup.offsetDescendantRectToMyCoords(ViewGroup.java:4090)
at android.view.ViewRootImpl.scrollToRectOrFocus(ViewRootImpl.java:2129)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:1849)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1641)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2449)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)

当我试图回到这个观点,意图或完成()发生这个错误; 方法在其他视图。 当我使用后退按钮它不是一个问题。

所以我不知道为什么我有这样的错误。 谢谢你的帮助。

Answer 1:

有同样的问题。 我使用的是ViewFlow作为父视图和几个GridView控件,当我按下Home键后,我滚动左右,这些孩子的意见重新启动该活动的孩子views.This错误发生。

这里是我的解决方案:

mViewFlow.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);

当然,你可以在layout.xml配置它。

希望能帮助你。



Answer 2:

这对我的作品。

convertView = mInflater.inflate(R.layout.row_stat_header,
                    parent, false);  

在这里, parent是在getView的参数的ViewGroup。



Answer 3:

解决了我的问题,增加滚动监听器。

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    View currentFocus = ((Activity)mContext).getCurrentFocus();
    if (currentFocus != null) {
        currentFocus.clearFocus();
    }  
}


文章来源: java.lang.IllegalArgumentException: parameter must be a descendant of this view Error