项目上线后遇到一个问题:
java.lang.IllegalArgumentException: parameter must be a descendant of this view
at android.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:5336)
at android.view.ViewGroup.offsetDescendantRectToMyCoords(ViewGroup.java:5265)
at android.view.ViewGroup$ViewLocationHolder.init(ViewGroup.java:7775)
at android.view.ViewGroup$ViewLocationHolder.obtain(ViewGroup.java:7709)
at android.view.ViewGroup$ChildListForAccessibility.init(ViewGroup.java:7644)
at android.view.ViewGroup$ChildListForAccessibility.obtain(ViewGroup.java:7612)
at android.view.ViewGroup.addChildrenForAccessibility(ViewGroup.java:1929)
at android.view.ViewGroup.onInitializeAccessibilityNodeInfoInternal(ViewGroup.java:2980)
at android.widget.AdapterView.onInitializeAccessibilityNodeInfoInternal(AdapterView.java:983)
at android.widget.AbsListView.onInitializeAccessibilityNodeInfoInternal(AbsListView.java:1608)
at android.widget.ListView.onInitializeAccessibilityNodeInfoInternal(ListView.java:3909)
at android.view.View.onInitializeAccessibilityNodeInfo(View.java:6097)
at android.view.View.createAccessibilityNodeInfoInternal(View.java:6056)
at android.view.View.createAccessibilityNodeInfo(View.java:6041)
at android.view.accessibility.AccessibilityRecord.setSource(AccessibilityRecord.java:145)
at android.view.accessibility.AccessibilityRecord.setSource(AccessibilityRecord.java:119)
at android.view.View.onInitializeAccessibilityEventInternal(View.java:5993)
at android.widget.AdapterView.onInitializeAccessibilityEventInternal(AdapterView.java:994)
at android.view.View.onInitializeAccessibilityEvent(View.java:5981)
at android.view.View.sendAccessibilityEventUncheckedInternal(View.java:5846)
出现原因:一个这样的View:
AbsListView.LayoutParams params = new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, ((int) (202f / 720f * Util.getScreenWidth()) + Util.dip2px(45)));
placeHolderViewDiscuss = new LinearLayout(getActivity());
placeHolderViewDiscuss.setLayoutParams(params);
给三个ListView中addview,如:
ListView.addHeaderView(placeHolderViewDiscuss);
出现异常崩溃(部分机型),即时加了try{}catch(){}一样无效;
解决方法:
new 3个View,添加到不同的Listview中。