Android代码中setvisibility失效了?
一、问题现象
最近在开发过程中遇到了在代码中setvisibility失效的问题,在网上查了好多资料都没有解决我的问题
二、发生背景
项目是MVVM架构,使用了databinding,想在tablayout+viewpager+fragment基础上,控制fragment中RecyclerView中的item里的一个ImageView隐藏与显示。控件通过databinding来setvisibility,但是无效。
三、通用解决方案(对此问题无效)
大部分原因是以下两点
1.控件本身正在执行动画。
2.设备的性能太差,需要重新加载才能显示正常,即需要被回收和重新构造。
问题1可以在控件调用隐藏之前,调用view.clearAnimation();
问题2可以尝试的使用view.invalidate()或者view.postinvalidate();
如果也不行,直接调用自身的requestLayout或者其父容器的requestLayout()进行强制的界面即时刷新重构;
四、最终解
前提条件是确保你的setvisibility()一定执行了~
根据背景提到的,我的项目用到了databinding,那么我在fragment中实例化一个binding对象,通过以下方式
binding = DataBindingUtil.inflate(getLayoutInflater(), R.layout.fragment_manual_scene, null, false);
一般情况下通过binding.Imageview.setvisibility()是没有问题的,但是在此项目中就是无法生效。
后来经过一番调试我发现将上述实例化binding的代码换成如下
binding = DataBindingUtil.bind(rootView.findViewById(R.id.auto_scene_cl));
此处的id是父布局的id,
经过这次的更改以后。setvisibility()失效的问题就解决了。
至于此处更改生效的原因及两种实例化方式的区别,有待进一步学习~
Android代码中setvisibility失效了?相关推荐
- android 设置字体大小和不同颜色,Android代码中设置字体大小,字体颜色,显示两种颜色.倒计时效果...
Android代码中设置字体大小,字体颜色,显示两种颜色 在xml文件中字体大小用的像素 android:id="@+id/uppaid_time" android:layout_ ...
- Android代码中实现WAP方式联网
无论是移动.联通还是电信,都至少提供了两种类型的的APN:WAP方式和NET方式.其中NET方式跟WIFI方式一样,无需任何设置,可自由访问所有类型网站,而WAP方式,需要手机先设置代理服务器和端口号 ...
- 从Android代码中来记忆23种设计模式
原文链接:http://www.jianshu.com/p/1a9f571ad7c0 相信大家都曾经下定决心把23种设计模式牢记于心,每次看完之后过一段时间又忘记了~,又得回去看,脑子里唯一依稀记得的 ...
- Android代码中发送Keycode按键
前言 有时候在代码中需要模拟一些用户操作的按键,例如TV 中遥控器的按键,一些测试脚本的编写.再比如android 手机中虚拟按键,以及悬浮窗中的返回功能,等等.都是模拟发送按键来操作. 这里介绍三种 ...
- Android代码中实现 防止手机休眠的处理
在开发Android程序时,有时候在程序运行的时候,不能让系统休眠,否则有一些运行会停止,因此我们需要设置禁止休眠,有两种方式:一种是添加权限,别一种是代码中设置,建议使用第一种方式,这样,在安装程序 ...
- android 动态设置margin,android 代码中设置margin
场景:Android怎么在java代码中设置margin Android如何在java代码中设置margin 原创帖,转发请注明出处:http://thierry-xing.iteye.com/blo ...
- 详解Spring中的CharacterEncodingFilter--forceEncoding为true在java代码中设置失效--html设置编码无效...
在项目中有很多让人头疼的问题,其中,编码问题位列其一,那么在Spring框架中是如何解决从页面传来的字符串的编码问题的呢?下面我们来看看Spring框架给我们提供过滤器CharacterEncodin ...
- Android RelativeLayout中layout_marginBottom失效
问题描述: 最近遇到一个诡异的问题,在自定义Dialog时,使用自己的xml布局. 发现显示异常,如图: 布局代码如下: <RelativeLayout xmlns:android=" ...
- android 学习过程中登陆失效的个人理解
今天在学习的过程中,要做登陆失效的功能,所以就找了些资料,好好看了一下,研究了一番,慢慢的做出来了! 比方:你在一个手机端登陆了账号.在另外的一个手机端也登陆了账号.此时,前一个手机端的账号会提示登陆 ...
最新文章
- TCP协议的特点和TCP报文段格式
- Zabbix企业应用之服务器硬件信息监控
- boost::mp11::mp_not_fn相关用法的测试程序
- firfox 和 chrome 移动端Web开发页面调试
- Dart集成开发环境
- Javascript--cookie创建与查看
- python中的zookeeper-zkpython安装
- jdk1.8下载安装教程
- 疫情可视化--2.爬虫--百度迁徙的疫情数据(各省市各个时间段迁入迁出比例)
- 机器学习基石 之 三大学习原则(Three Learning Principles)
- windows怎样让宽带自动连接
- Jetson nano 开机自动连接 Wifi
- android联想云服务,联想云服务手机客户端
- 257套工业机器人SW设计3D图纸 焊接机械手/发那科ABB安川臂模型
- Matplotlib 配色表
- FPGA分频电路实现(奇数,偶数,小数半分频,任意分频)
- web前端工程师简历
- linux服務器重啟後自動啟動java項目的腳本配置
- 桌游推荐|谁是卧底推理系列游戏上新,不一样的头脑风暴
- 2022年西式面点师(初级)考试题模拟考试题库及答案
热门文章
- 第10届蓝桥杯B组F题《特别的数》
- delphi bpl包窗体继承
- object...object和object[]...obj[]的区别
- 微信小程序之 优惠券选择
- 获取ckeditor的内容
- 2018_9_22 模拟赛
- rrrrrrrrrrr
- 罗定c语言,罗定学c语言编程,罗定学c语言编程培训,罗定学c语言编程一般怎么收费...
- (读书笔记)大数据分析计算机基础
- 游泳过后,耳朵进水怎么办,中耳进水