android 移除子view,android-从父视图中移除视图与隐藏视图

这篇博客讨论了在Android中如何通过GONE、INVISIBLE和REMOVE操作来改变视图的可见性。GONE会使视图在布局中不占用空间,而INVISIBLE虽然隐藏视图但仍然占用空间。REMOVE则从父视图中彻底移除视图,使其不再作为子视图存在,可以用于移动到其他ViewGroup。根据不同的需求选择合适的视图可见性操作,对于优化布局和内存管理至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在android中,如果我从其父视图中移除视图,而在父视图中隐藏子视图(GONE不可见).我知道隐藏的视图仍将保留在内存中,但说到父视图的物理外观会有所不同吗?如果答案没有不同,那是否意味着当我隐藏子视图时,子视图的整个布局在父视图中基本上不存在?

解决方法:

《先去了》看不见的是两件事.

当您使用GONE更改可见性时

This view is invisible, and it doesn’t take any space for layout purposes.

但是另一方面,当您使用INVISIBLE更改可见性时

This view is invisible, but it still takes up space for layout purposes.

所以真正的问题是REMOVE vs GONE

去掉

删除视图时,它将从布局的层次结构中删除.这意味着它不再是其父级的子级.因此,该视图现在可以在任何其他ViewGroup中使用.

去了

当您将可见性更改为GONE时,它变为不可见,并删除了分配的空间,但是它仍然是其父级的子级.因此,它不能在任何其他ViewGroup中使用,因为一个孩子只能有一个父母.

何时使用删除

对我来说,如果要将视图移动到另一个ViewGroup,或者要永久隐藏它,则必须删除该视图.

何时使用GONE

当您要切换可见性时,请在父视图中切换可见性以及为其分配的空间.将可见性设置为GONE后,用户无法区分是否首先存在一个View.

何时使用隐形

与GONE类似,当您想要切换可见性,但又不想在父视图中删除为其分配的空间时.因此,UI看起来就像是被隐藏了.

标签:android

来源: https://codeday.me/bug/20191119/2034911.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值