当TextView对象的可见性设置为View.GONE时,TextView对象中的文本会发生什么?

时间:2016-08-09 12:24:32

标签: android textview

我在一个活动(不是片段)中有一个 TextView 对象,我使用SetText()填充了一些文本。在某些时候,我将 TextView 对象的可见性更改为View.GONE。一段时间后,当 TextView 对象的可见性设置为View.VISIBLE时,动态文本集不会显示在 TextView 中。我试图了解使用Log发生了什么,并发现 TextView 对象的内容是空字符串。因此我的问题是,当 TextView 对象中的文本可见性设置为View.GONE时会发生什么?

简介:

使用setText() - >填充 textview 中的文字将公开范围更改为View.GONE - >将公开范围更改为View.VISIBLE - > getText() 返回字符串

问题:为什么?

2 个答案:

答案 0 :(得分:2)

setVisibility()View类的一种方法,文档说明当可见性设置为View.GONE时:

  

此视图不可见,并且不占用任何布局空间   目的。

因此,此处的View实例(TextView对象)非常活跃并且没有理由显示其私有字段(mText以及TextView )被摧毁它对布局管理器来说是不可见的。在您的情况下,上述行为的罪魁祸首之一是TextView对象的可能重新初始化(例如通过调用onCreateView())。

答案 1 :(得分:1)

Textview不可见,并且不需要任何空间用于布局。 因此没有数据丢失,它只是看不见,没有空间获取用于布局目的。所以它必须是你的代码中的一些其他setText()操作,或者你可能是重新创建TextView对象。