Android 获取View中的组件
可以把这个view强转成ViewGroup对象,再通过getChildAt(0),getChildAt(1)
获取之后AddView可能会报错:IllegalStateException: The specified child already has a parent问题解决办法
最近遇到一个很让人头疼的问题,使用viewpager动态添加页面或者删除页面时出现了问题(java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child‘s parent first),在stackoverflow上找到了解决办法。(http://stackoverflow.com/questions/22936886/java-lang-illegalstateexception-while-using-viewpager-in-android) 原文是: the problem is that in your adapters method instantiateItem you call container.addView(v); but every View can have only one parent, so it can be added only one time to a container via addView(...). When you open the popup the first time, everything works, because v doesn‘t have a parent that time. But when you open your popupwinow the second time, it adds the view again to the container. That cerates the error. Try to destroy the view if you close the popup view or remove all children views from it with container.removeAllViews() 解决办法是在instantiateItem中使用如下方式: ViewGroup parent = (ViewGroup) v.getParent(); if (parent != null) { parent.removeAllViews(); } container.addView(v); 中间很多次尝试已经接近答案,但是习惯性的去把v.getParent()强制转化为view,view没有removeView()方法,以至于放弃了这种方法,以后要多思考,想到的解决办法如果完全不是自己想要的结果,一定要再检查一遍,很有可能是某个小地方没注意。奋斗
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。