zoukankan      html  css  js  c++  java
  • 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()方法,以至于放弃了这种方法,以后要多思考,想到的解决办法如果完全不是自己想要的结果,一定要再检查一遍,很有可能是某个小地方没注意。奋斗
  • 相关阅读:
    redis存储session配制方法
    thanks使用注意事项;
    mongodb sort limit和skip用法
    mongoose的用法(注:连接数据库)
    mongoose查询特定时间段文档的方法
    webworker的使用案例
    js 传参数
    redis.config翻译
    Oracle keep详解
    自学之笔记总结
  • 原文地址:https://www.cnblogs.com/niray/p/4531124.html
Copyright © 2011-2022 走看看