• 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()方法,以至于放弃了这种方法,以后要多思考,想到的解决办法如果完全不是自己想要的结果,一定要再检查一遍,很有可能是某个小地方没注意。奋斗
  • 相关阅读:
    DOM总结
    BOM总结
    备忘录设计模式
    策略模式
    迭代器模式
    观察者模式
    装饰模式
    脚本工具(获取某个文件夹下的所有图片属性批量生成css样式)
    ajax传输中文乱码解决方法
    java Serialization and Deserializaton
  • 原文地址:https://www.cnblogs.com/niray/p/4531124.html
Copyright © 2020-2023  润新知