出现这种情况很可能是因为View设置了animation,并且调用了setFillAfter(true),这就会导致setVisibility无效,只需要调用一下clearAnimation()方法或者去掉setFillAfter(true)语句即可。

实验证明只要在setVisibility之前设置View的mCurrentAnimation为null就可以,因此调用setAnimation(null)也是可以的。从源码来看setFillAfter为false时也会间接导致调用clearAnimation,而clearAnimation在这里使setVisibility有效的原因也是置mCurrentAnimation为null了。

setFillAfter为false时间接导致clearAnimation:

ViewGroup 中 finishAnimatingView(final View view, Animation animation)

if (animation != null && !animation.getFillAfter()) {view.clearAnimation();
}

而mCurrentAnimation使GONE无效的初步分析很可能是ViewGroup 中 dispatchDraw(Canvas canvas)

transientChild.getAnimation() != null

if ((transientChild.mViewFlags & VISIBILITY_MASK) == VISIBLE ||transientChild.getAnimation() != null) {more |= drawChild(canvas, transientChild, drawingTime);
}

在dispatchDraw子View的时候,尽管不为VISIBLE,由于是||的关系,也会导致drawChild被调用

protected boolean drawChild(Canvas canvas, View child, long drawingTime) {return child.draw(canvas, this, drawingTime);
}

View 中 setVisibility(View.GONE); 失效相关推荐

  1. 项目需求之Android 监听键盘的弹起和隐藏setVisibility(View.GONE)方法失效

    最近比较忙咯,因为在做密码密码管理模块,所以一直在跟EditText打交道,我也写了几篇跟EditText有关的博客了,今天又遇到需求了,需要监听系统键盘的弹起和隐藏. 需求大致是这样的: 1.当键盘 ...

  2. setVisibility(View.INVISIBLE)、android.os.Process.killProcess和System.exit失效

    今天遇到一个问题:在拨打电话时,关闭UI,UI又重新被系统拉起了.另外拨打电话时有个imageview会显示,挂断电话会消失,但是挂断后这个imageview没有消失. 一.查setVisibilit ...

  3. Android代码中setvisibility失效了?

    一.问题现象 最近在开发过程中遇到了在代码中setvisibility失效的问题,在网上查了好多资料都没有解决我的问题 二.发生背景 项目是MVVM架构,使用了databinding,想在tablay ...

  4. android 组件不可见,Android setVisibility(View.VISIBLE)不显示该组件

    我正在使用setVisibility()隐藏onStart()中的一些UI组件,目的是在onActivityResult()的特定条件下使它们重新出现. 我已将变量设置为全局变量,并将其分配给组件on ...

  5. vs2010中的Resource View和Class View都为空的有效解决办法

    近期在学习windows socket编程,决定在熟练到一定程度后研究下飞鸽传书(IPMSG).下午打开了IPMSG大致看了一下源码,毫无头绪.技术细节全然不知. 这倒没什么,刚起步也没有多大要求.从 ...

  6. Qt中model/view设计模式

    Qt Model/View 学习笔记 (一) Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系.这种结构带来的 功能上的分离给了开发人员更大的弹性来 ...

  7. android布局闪动,设置child.setvisibility(View.Visible)时,Android主屏幕出现效果闪烁问题...

    我已经制作了一个示例应用程序,可以在视镜中浏览不同的布局. XML基本上是(伪代码) 在Java代码中 public boolean onTouchEvent(MotionEvent event) c ...

  8. android连续调用setVisibility(View.VISIBLE)和setVisibility(View.Gone)

    最近想利用setVisibility(View.VISIBLE)和setVisibility(View.Gone)来显示和隐藏一个LinearLayout(主要是想当作一个loading界面使用),发 ...

  9. java中的onresume_android onCreate onResume中获取 View 宽高为0分析

    1.问题测试 xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_par ...

最新文章

  1. C#调用C++写的Dll时的运行时错误解决
  2. Atitit hsv转grb  应该优先使用hsv颜色原则 方便人类
  3. 【转】supervisord使用
  4. Silverlight4.0(9) 之 分页控件轻量级的Session
  5. eclipse 启动tomcat时弹出错误 Multiple Contexts hava a path of “/xxx”
  6. 复习Linux基础操作---权限操作
  7. 使用友盟+的APM服务实现对移动端APP的性能监控
  8. 计算机刚过国家线能调剂到哪些学校,2020考研:刚过国家线好不好调剂?这4个调剂策略!考生要知道...
  9. 【转】牛人杰作 管饭哥登场
  10. 本地上传代码到github仓库
  11. 超级硬盘数据恢复软件v2.7.2.6_电脑磁盘上的视频误删如何恢复?误删视频恢复教程...
  12. BZOJ 3897: Power
  13. Ancient Berland Circus CodeForces - 1C
  14. python统计人的视角_Python--统计人的视角
  15. 阿里字体图标库的使用
  16. Git- 报错 error: bad signature 0x00000000 fatal: index file corrupt
  17. 解决 Macbook 连接蓝牙鼠标卡顿、飘的现象
  18. Excel数据分析系列(5):Excel 数据可视化
  19. Xray的安装与使用(超详细)
  20. 盒子滚动到底部有偏差 js_干货丨JS 经典实例收集整理

热门文章

  1. Node.js 前世今生
  2. 第 1-1 课:为什么要掌握 Flutter?
  3. RK3568平台开发系列讲解(camera篇)Camera2简介
  4. Nvidia显卡命名的各部分的含义
  5. 在【Window】系统下更改 【pip install】 默认安装依赖路径
  6. A Fast Single Image Haze Removal Algorithm Using Color Attenuation Prior——基于颜色衰减先验单图片去雾算法原理...
  7. 最近组织游泳社的体会
  8. 安卓项目实战之强大的网络请求框架okGo使用详解(一):实现get,post基本网络请求,下载上传进度监听以及对Callback自定义的深入理解
  9. VR游戏设计之三大特性
  10. zuiqingchun3