View 中 setVisibility(View.GONE); 失效
出现这种情况很可能是因为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); 失效相关推荐
- 项目需求之Android 监听键盘的弹起和隐藏setVisibility(View.GONE)方法失效
最近比较忙咯,因为在做密码密码管理模块,所以一直在跟EditText打交道,我也写了几篇跟EditText有关的博客了,今天又遇到需求了,需要监听系统键盘的弹起和隐藏. 需求大致是这样的: 1.当键盘 ...
- setVisibility(View.INVISIBLE)、android.os.Process.killProcess和System.exit失效
今天遇到一个问题:在拨打电话时,关闭UI,UI又重新被系统拉起了.另外拨打电话时有个imageview会显示,挂断电话会消失,但是挂断后这个imageview没有消失. 一.查setVisibilit ...
- Android代码中setvisibility失效了?
一.问题现象 最近在开发过程中遇到了在代码中setvisibility失效的问题,在网上查了好多资料都没有解决我的问题 二.发生背景 项目是MVVM架构,使用了databinding,想在tablay ...
- android 组件不可见,Android setVisibility(View.VISIBLE)不显示该组件
我正在使用setVisibility()隐藏onStart()中的一些UI组件,目的是在onActivityResult()的特定条件下使它们重新出现. 我已将变量设置为全局变量,并将其分配给组件on ...
- vs2010中的Resource View和Class View都为空的有效解决办法
近期在学习windows socket编程,决定在熟练到一定程度后研究下飞鸽传书(IPMSG).下午打开了IPMSG大致看了一下源码,毫无头绪.技术细节全然不知. 这倒没什么,刚起步也没有多大要求.从 ...
- Qt中model/view设计模式
Qt Model/View 学习笔记 (一) Qt 4推出了一组新的item view类,它们使用model/view结构来管理数据与表示层的关系.这种结构带来的 功能上的分离给了开发人员更大的弹性来 ...
- android布局闪动,设置child.setvisibility(View.Visible)时,Android主屏幕出现效果闪烁问题...
我已经制作了一个示例应用程序,可以在视镜中浏览不同的布局. XML基本上是(伪代码) 在Java代码中 public boolean onTouchEvent(MotionEvent event) c ...
- android连续调用setVisibility(View.VISIBLE)和setVisibility(View.Gone)
最近想利用setVisibility(View.VISIBLE)和setVisibility(View.Gone)来显示和隐藏一个LinearLayout(主要是想当作一个loading界面使用),发 ...
- java中的onresume_android onCreate onResume中获取 View 宽高为0分析
1.问题测试 xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_par ...
最新文章
- 打印循环换行_科学向日葵在线课堂 ——张老师讲Python 第八课 周而复始为循环2...
- 9.8.6恢复系统数据库
- 我,是真是一个培训班出来的程序员
- db29.7时间格式化为时间到时分秒_python基础系列 | 示例讲解时间模块datetime
- 计算机视觉算法——图像分类网络总结
- python excel 操作
- ubuntu14.04 源
- android Baseadapter 和 ViewHolder的使用
- 苹果修复被 XCSSET 恶意软件滥用的3个 0day
- 如何基于列值从DataFrame中选择行?
- HTML5+CSS3设计界面
- inDesign教程,如何在文档中添加交互性预览?
- python scipy库函数solve用法_python scipy linalg.solve_banded用法及代码示例
- 恒生Pb系统与讯投PB系统、PTrade交易系统比较
- 常见Gof设计模式(包括5种创建型、7种结构型、11种行为型)
- C/C++基础题035.一元二次方程公式
- 所罗门王的宝藏(高斯消元)
- 终极讲师介绍:集齐 27 位大神召唤亚洲首届 Rust 开发者大会!
- Package com.myapp signatures do not match the previously installed version
- 能够切换用户重新登录计算机,苹果电脑切换用户登录_苹果电脑切换登录账号...