android setVisibility(GONE)不及时刷新的问题
16lz
2021-01-26
android中需要根据接口返回或者获取完用户登录信息后进行数据刷新的地方很多,基本都会用到view.setVisibility(View,VISIBLE)或者VIEW.GONE来实现界面上的刷新。
然而有些时候或者有些设备上,调用这些方法会有显示异常的问题,具体表现为调用无效或者调用有效,但是控件本身消失但仍占据控件。
之所以有这种情况的原因大致上有两种:
1.控件本身正在执行动画。
2.设备的性能太差,需要重新加载才能显示正常,即需要被回收和重新构造。
解决的方法:
对于原因1:
在控件调用隐藏之前,调用view.clearAnimation();
对于原因2:
可以在调用隐藏方法后,尝试的使用view.invalidate()或者view.postinvalidate();
如果也不行,直接调用自身的requestLayout或者其父容器的requestLayout()进行强制的界面即时刷新重构;
更多相关文章
- android Activity状态以及生命周期
- Android(安卓)多线程及多线程中更新控件。
- Android实现电话拨号器和短信发送器
- Android中WebView加载本地Html,与JavaScript与Android方法相互传
- Android平台调用so库中函数的流程及一些坑
- [Android]应用界面创建控件的两种方式
- Android的反射机制Reflection
- 【Android(安卓)开发】:UI控件之 ImageView 实现图片旋转和缩放功
- 框架和流程——OkHttp 源码详解(一)