0 0

重新加载View时,报You must call removeView() on ....的错误5

我有段代码
   if(gifView==null){
      gifView = new GIFView(this);
      pnlwelcome_row1.addView(gifView );// 第一次运行时 正常....

   }else{
    pnlwelcome.removeView( gifView );
    pnlwelcome_row1.removeView(gifView);   
    pnlwelcome_row1.removeAllViews();
    pnlwelcome_row1.refreshDrawableState();
    gifView.getParent().recomputeViewAttributes(gifView);
    pnlwelcome_row1.addView(gifView ); // 第二次运行时 报这个错误了,为什么?我不是pnlwelcome_row1.removeAllViews();了么???
   }

做UI 的时候 ,估计大家也碰到类似的情况。怎么解决的??


报 09-28 01:49:54.688: ERROR/AndroidRuntime(1032): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

//pnlwelcome_row1.addView(gifView );
如果我注释这一句,程序不报错。但第二次进入 welcomepnl面板时。 gifView 显示不出来了。
2009年9月28日 10:17

1个答案 按时间排序 按投票排序

0 0

采纳的答案

gifView 和 pnlwelcome_row1 之间建立的是双向关联,
虽然 pnlwelcome_row1 remove 了 gitView, 但是 gifView 仍然关联着 pnlwelcome_row1。

2009年9月29日 00:20

相关推荐

    微信主界面

    在使用ViewPager + Fragment 的时候报错:The specified child already has a parent. You must call removeView() on the child’s parent first

    模拟微信界面2

    在使用ViewPager + Fragment 的时候报错:The specified child already has a parent. You must call removeView() on the child’s parent first.

    尚学堂android开发常用错误集.docx

    You must call removeView() on the child's parent first. ``` **原因分析**: 尝试将一个已经存在于父视图中的子视图添加到另一个父视图中。在进行添加操作前,需要先从当前的父视图中移除该视图。 **解决方案*...

    android Gallery实现异步加载网络图片 并只加载当前停止页面图.zip

    7. **监听`Gallery`的滚动事件**:为了在滚动停止时加载新的图片,我们需要监听`OnItemSelectedListener`事件。 ```java gallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @...

    ViewPager的屏蔽预加载

    请注意,将`setOffscreenPageLimit()`设置为0可能会导致页面间的切换不够流畅,因为它需要在每次切换时重新加载页面。因此,这个设置应当谨慎使用,根据实际需求进行权衡。 在使用自定义的`MyPagerAdapter`时,记得...

    ViewPager 异步加载 自动切换

    container.removeView((View) object); } public void startAutoSwitch(int delay) { autoSwitchRunnable = new Runnable() { @Override public void run() { if (imageUrls.isEmpty()) return; int ...

    android动态添加 加载 布局

    在Android开发中,动态添加和加载布局是一种常见的需求,它允许开发者在运行时根据用户交互或特定条件向已有的视图结构中添加新的组件。这种技术对于创建灵活、可扩展的用户界面至关重要,特别是当应用需要展示不...

    android动态布局

    在Android开发中,动态布局是一项重要的技能,它允许开发者在运行时根据需要创建、修改或删除视图元素。本文将深入探讨如何实现“简单的view动态增加删除”这一主题,同时结合“计数器”概念,为您的应用增添交互性...

    Android动态添加View的问题解决方法

    在Android开发中,动态添加View是一项常见的需求,例如在运行时根据用户操作或者业务逻辑创建新的UI元素。本文将深入探讨如何解决Android动态添加View时遇到的问题,特别是针对描述中的例子,即动态添加一个GridView...

    android之view学习示例

    - 自定义View时,通常需要重写`onDraw()`、`onMeasure()`以及触摸事件处理方法。 - 使用`LayoutInflater`可以从XML布局文件中实例化自定义View。 6. **ViewGroup与View的层级关系** - ViewGroup是一种特殊的View...

    布局的动态加载

    在Android应用开发中,"布局的动态加载"是一项关键技能,它使得开发者能够在运行时根据需求加载不同的用户界面布局,从而提高应用的灵活性和用户体验。动态加载布局不仅可以减少应用程序的初始加载时间,还可以使...

    YCRedDotView-自定义红点控件,不用修改之前的代码,完全解耦,即可以设置红点数字控件,使用十分方便。可以支持设置在TextView,Button,LinearLayout,RelativeLayout,TabLayout等等控件上…….zip

    目录介绍01.该库介绍02.效果展示03.如何使用04.注意要点05.优化问题06.部分代码逻辑01.该库介绍自定义红点控件,不用修改之前的代码,... Log.e(getClass().getSimpleName(), "ParentView is must needed");  } }

    Android 实现在所有应用上显示View

    别忘了在应用退出时调用`removeView()`来移除View,避免内存泄漏。 6. **处理事件**:由于你的View覆盖了其他应用,所以你需要处理触摸事件,确保用户可以正常与底层应用交互。可以通过重写`onTouchEvent()`方法来...

    viewpager相关

    ((ViewPager)container).removeView(views.get(position)); } @Override public Object instantiateItem(View container, int position) { // TODO Auto-generated method stub ((ViewPager)...

    ViewPager使用流程

    ((ViewPager) container).removeView((View) object); } } ``` 接着,在Activity中使用`WeatherAdapter`来绑定数据: ```java WeatherAdapter adapter = new WeatherAdapter(weatherList); weatherPager....

    aj-优秀的悬浮窗案例(两个).rar

    若需隐藏悬浮窗,使用`windowManager.removeView(view)`。 6. **持久化与恢复**:为了让悬浮窗在应用重启后依然存在,可以将悬浮窗的位置和状态保存在共享偏好(SharedPreferences)或本地文件中,应用启动时读取并...

    Xamarin.Android 悬浮框(背景半透明遮挡)

    使用`LayoutInflater`从XML布局文件中加载视图,并创建一个`View`对象。 ```csharp LayoutInflater inflater = LayoutInflater.From(this); View floatingView = inflater.Inflate(Resource.Layout.floating_...

    Android高级应用源码-实现桌面悬浮窗,并可随手指移动,代码只实现一个button,可自行修改悬浮窗样式.zip

    windowManager.removeView(floatingView); } } // 触摸事件监听 private class MyTouchListener implements View.OnTouchListener { @Override public boolean onTouch(View v, MotionEvent event) { ...

    ListView分页功能源码.zip

    Android market里软件列表,每页显示10条记录,没有显示上一页,下一页的按钮,依靠手滑动动态加载数据,当向下滚动时,最下边显示 Loading… 。数据加载结束,Loading底栏消失。关于ListView的分段显示,有现成的库...

    android viewgroup view 源码

    1. **子视图管理(Child Management)**: `ViewGroup`维护了一个子`View`的列表,并通过`addView()`, `removeView()`, `getChildAt()`等方法进行管理。 2. **复用布局参数(LayoutParams Reuse)**: `ViewGroup`有...

Global site tag (gtag.js) - Google Analytics