今天在做项目遇到一个问题,运行报了如下错误, 看了一下是因为 RelativeLayout 动态添加子View ,要去掉子View 的父容器,才能添加,
具体的解决方法 是:
View view = View.inflate(SettlementActivity.this, R.layout.item_settlement_list, null);
ViewGroup parent = (ViewGroup) view.getParent(); if (parent != null) { parent.removeAllViews(); } mRL.addView(view, params);
//报的错误信息
FATAL EXCEPTION: main
Process: com.zhanghong.fruit, PID: 17849java.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:3881)
at android.view.ViewGroup.addView(ViewGroup.java:3734)
at android.view.ViewGroup.addView(ViewGroup.java:3679)
at android.view.ViewGroup.addView(ViewGroup.java:3655)
at com.zhanghong.fruit.SettlementActivity$1.onGlobalLayout(SettlementActivity.java:64)
at android.view.ViewTreeObserver.dispatchOnGlobalLayout(ViewTreeObserver.java:815)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1894)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1081)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5818)
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:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5235)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:906)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:701)