出现这种情况很可能是因为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. 打印循环换行_科学向日葵在线课堂 ——张老师讲Python 第八课 周而复始为循环2...
  2. 9.8.6恢复系统数据库
  3. 我,是真是一个培训班出来的程序员
  4. db29.7时间格式化为时间到时分秒_python基础系列 | 示例讲解时间模块datetime
  5. 计算机视觉算法——图像分类网络总结
  6. python excel 操作
  7. ubuntu14.04 源
  8. android Baseadapter 和 ViewHolder的使用
  9. 苹果修复被 XCSSET 恶意软件滥用的3个 0day
  10. 如何基于列值从DataFrame中选择行?
  11. HTML5+CSS3设计界面
  12. inDesign教程,如何在文档中添加交互性预览?
  13. python scipy库函数solve用法_python scipy linalg.solve_banded用法及代码示例
  14. 恒生Pb系统与讯投PB系统、PTrade交易系统比较
  15. 常见Gof设计模式(包括5种创建型、7种结构型、11种行为型)
  16. C/C++基础题035.一元二次方程公式
  17. 所罗门王的宝藏(高斯消元)
  18. 终极讲师介绍:集齐 27 位大神召唤亚洲首届 Rust 开发者大会!
  19. Package com.myapp signatures do not match the previously installed version
  20. 能够切换用户重新登录计算机,苹果电脑切换用户登录_苹果电脑切换登录账号...

热门文章

  1. eureka注册中心启动后访问,控制台出现socket read timeout exception
  2. JS组件系列——Bootstrap组件福利篇:几款好用的组件推荐(二)
  3. Objective-c 学习笔记(二)
  4. ajaxFileUpload连续上传文件时,从第二次开始不触发change事件
  5. android 高仿大众点评,高仿大众点评商家列表
  6. 计网 | 【三 数据链路层】知识点及例题
  7. 面试官和你闲聊,该如何应对?
  8. Rufus制作USB启动盘工具 重装系统
  9. Nginx学习日记1
  10. TeradataSQL基础