一、问题现象

最近在开发过程中遇到了在代码中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失效了?相关推荐

  1. android 设置字体大小和不同颜色,Android代码中设置字体大小,字体颜色,显示两种颜色.倒计时效果...

    Android代码中设置字体大小,字体颜色,显示两种颜色 在xml文件中字体大小用的像素 android:id="@+id/uppaid_time" android:layout_ ...

  2. Android代码中实现WAP方式联网

    无论是移动.联通还是电信,都至少提供了两种类型的的APN:WAP方式和NET方式.其中NET方式跟WIFI方式一样,无需任何设置,可自由访问所有类型网站,而WAP方式,需要手机先设置代理服务器和端口号 ...

  3. 从Android代码中来记忆23种设计模式

    原文链接:http://www.jianshu.com/p/1a9f571ad7c0 相信大家都曾经下定决心把23种设计模式牢记于心,每次看完之后过一段时间又忘记了~,又得回去看,脑子里唯一依稀记得的 ...

  4. Android代码中发送Keycode按键

    前言 有时候在代码中需要模拟一些用户操作的按键,例如TV 中遥控器的按键,一些测试脚本的编写.再比如android 手机中虚拟按键,以及悬浮窗中的返回功能,等等.都是模拟发送按键来操作. 这里介绍三种 ...

  5. Android代码中实现 防止手机休眠的处理

    在开发Android程序时,有时候在程序运行的时候,不能让系统休眠,否则有一些运行会停止,因此我们需要设置禁止休眠,有两种方式:一种是添加权限,别一种是代码中设置,建议使用第一种方式,这样,在安装程序 ...

  6. android 动态设置margin,android 代码中设置margin

    场景:Android怎么在java代码中设置margin Android如何在java代码中设置margin 原创帖,转发请注明出处:http://thierry-xing.iteye.com/blo ...

  7. 详解Spring中的CharacterEncodingFilter--forceEncoding为true在java代码中设置失效--html设置编码无效...

    在项目中有很多让人头疼的问题,其中,编码问题位列其一,那么在Spring框架中是如何解决从页面传来的字符串的编码问题的呢?下面我们来看看Spring框架给我们提供过滤器CharacterEncodin ...

  8. Android RelativeLayout中layout_marginBottom失效

    问题描述: 最近遇到一个诡异的问题,在自定义Dialog时,使用自己的xml布局. 发现显示异常,如图: 布局代码如下: <RelativeLayout xmlns:android=" ...

  9. android 学习过程中登陆失效的个人理解

    今天在学习的过程中,要做登陆失效的功能,所以就找了些资料,好好看了一下,研究了一番,慢慢的做出来了! 比方:你在一个手机端登陆了账号.在另外的一个手机端也登陆了账号.此时,前一个手机端的账号会提示登陆 ...

最新文章

  1. TCP协议的特点和TCP报文段格式
  2. Zabbix企业应用之服务器硬件信息监控
  3. boost::mp11::mp_not_fn相关用法的测试程序
  4. firfox 和 chrome 移动端Web开发页面调试
  5. Dart集成开发环境
  6. Javascript--cookie创建与查看
  7. python中的zookeeper-zkpython安装
  8. jdk1.8下载安装教程
  9. 疫情可视化--2.爬虫--百度迁徙的疫情数据(各省市各个时间段迁入迁出比例)
  10. 机器学习基石 之 三大学习原则(Three Learning Principles)
  11. windows怎样让宽带自动连接
  12. Jetson nano 开机自动连接 Wifi
  13. android联想云服务,联想云服务手机客户端
  14. 257套工业机器人SW设计3D图纸 焊接机械手/发那科ABB安川臂模型
  15. Matplotlib 配色表
  16. FPGA分频电路实现(奇数,偶数,小数半分频,任意分频)
  17. web前端工程师简历
  18. linux服務器重啟後自動啟動java項目的腳本配置
  19. 桌游推荐|谁是卧底推理系列游戏上新,不一样的头脑风暴
  20. 2022年西式面点师(初级)考试题模拟考试题库及答案

热门文章

  1. 第10届蓝桥杯B组F题《特别的数》
  2. delphi bpl包窗体继承
  3. object...object和object[]...obj[]的区别
  4. 微信小程序之 优惠券选择
  5. 获取ckeditor的内容
  6. 2018_9_22 模拟赛
  7. rrrrrrrrrrr
  8. 罗定c语言,罗定学c语言编程,罗定学c语言编程培训,罗定学c语言编程一般怎么收费...
  9. (读书笔记)大数据分析计算机基础
  10. 游泳过后,耳朵进水怎么办,中耳进水