Android中解决布局加载中setVisibility(View.GONE))失效问题

一、前言

最近在写的一个项目中,需要在SecondActivity使用intent唤起MainActivity的同时更新其UI界面,我的思路是将需要添加的控件在第一次创建时设置为不可见,调用setVisibility(View.GONE)方法将其隐藏,在SecondActivity唤起MainActivity的时候再将其设置为可见,调用setVisibility(View.VISIBLE)方法就可以达到效果。

二、问题

第一次创建MainActivity的时候就把需要更新的界面显示出来了,难道是setVisibility(View.GONE)方法不管用吗?

三、分析

  • 检查重新唤起的MainActivity中的setVisibility(View.VISIBLE)是否被调用,日志打印结果并没有显示被调用,证明不是调用setVisibility(View.VISIBLE)方法出现的问题

  • 检查onCreate中的setVisibility(View.GONE)是否有效,发现还是无法隐藏添加的控件;

  • 检查layout布局文件,查看添加控件的属性,发现没有设置属性android:visibility="gone"!

四、解决方法

在添加的控件布局中添加android:visibility="gone"属性

五、总结

注意:对需要设置可见或不可见的控件一定要在布局中的控件属性中添加android:visibility="gone"属性,否则单纯的在Java代码中使用setVisibility方法是无法生效的

如有错误,欢迎指正,虚心学习!

猜你喜欢

转载自blog.csdn.net/Xiongjiayo/article/details/81878929