首页 分享 android gone 空白,android:visibility=“gone” (动画布局入的一次坑)

android gone 空白,android:visibility=“gone” (动画布局入的一次坑)

来源:花匠小妙招 时间:2024-12-21 06:32

最新推荐文章于 2024-10-07 00:04:33 发布

许执是只喵 于 2021-05-31 08:20:45 发布

#写在前面:

觉得简单可以不看,博客本来就是记录心得的地方。往往有些很简单的东西,要搞上半天,如果能对别人有借鉴作用,从大处说,也是节约了别人的时间,提供了思路。#

1、想要的效果:按设定的透明按钮点击下一步,先要显示一个图片,然后在下方出现一个行文字(也是一个线性布局)。继续点击,下方那行布局不变,图片切换(即让本来的图片gone,另外的一个图片出现并visible)。(之后的动画省略)

2、解决时间:花了近1天

3、具体:

3-1  我有一个图片A和一行文字(含在线性布局里的textview),在XML视图中是无误的。按动画顺序,要先出来图片A,再出来B

397c02b361dd912b8d651a2f288287fc.png

3-2  问题是,实际中,当按下一步,图片A出来后,接着下一步,文字并没有出来,中间空了一大块。(我在图片A后又加了一个图片B,并把B设置为android:visibility="gone")

3-3 经过多次XML中对其他布局控件的增加修改,然后文字那行布局是出现了,但是中间留有很大一片空白。(最终确定出现问题的地方定在B,把B的height调小后,文字可以出来,因此断定是B占用了空间,但是我已经设置为gone了,不可能还会占空间。)

3-4 最后,找到了原因。 因为一直只盯在布局这里,我也确定了布局是没有问题的。然后我开始从项目代码上找原因,复制了一下B布局的ID,直接在其对应的类中ctrl+f,搜索这个id 。找到了下方这行代码。 原来如此,确实是很简单的一个问题。

fenhongjinall= (LinearLayout) findViewById(R.id.fenhongall);

fenhongjinall.setVisibility(View.INVISIBLE);

即我在XML里设置了B为android:visibility="gone",按道理来说它应该不占空间而完全隐藏。但是我在类文件代码里,由于代码复用的疏忽,加入了这行代码  B.setVisibility(View.INVISIBLE) ,invisible的区别在于虽然隐藏,但是会占用控件原来的空间.

因此,这也印证了程序会以类文件中的代码设置为准,当你设置了setVisibility(View.INVISIBLE),如果在对应XML中设置GONE,XML里的属性也不会再起作用。

相关知识

Android简单实现汉字笔顺动画——Java版
Android研究院之应用程序界面五大布局(九)
Android 移动开发
安卓移动开发实验二:Android布局
android 布局中的单位及分辨率自解
Android进阶之路
Android移动开发
Android中字体的处理
实现类似android:clipChildren=“false”的效果,在使用android:clipChildren多次尝试无效时使用
Android Studio实现简单的购物商城界面

网址: android gone 空白,android:visibility=“gone” (动画布局入的一次坑) https://www.huajiangbk.com/newsview1212928.html

所属分类:花卉
上一篇: Android Drawable
下一篇: 为保住iOS搜索框 谷歌花10亿

推荐分享