【问题标题】:What happens to text in TextView object, when its visibility is set to View.GONE?当 TextView 对象的可见性设置为 View.GONE 时,TextView 对象中的文本会发生什么情况?
【发布时间】:2016-12-15 11:54:31
【问题描述】:

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

简介:

使用setText()textview中填充文本-->将visibility更改为View.GONE-->将visibility更改为View.VISIBLE --> getText() 返回字符串

问题:为什么?

【问题讨论】:

  • 你确定onCreateView() 没有被再次调用?
  • View.GONE 不应该这样做,它只会使视图不可见(并且不占用空间)。你能把代码贴在你使用 textview 的地方吗?
  • 这是一个菜鸟的错误。由于其他元素与其重叠,TextView 的可见性在视图中被隐藏了,

标签: android textview


【解决方案1】:

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

这个视图是不可见的,它不占用任何布局空间 目的。

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

【讨论】:

  • View.INVISIBLE 怎么样?在我的应用程序中,我想要一些可以以编程方式操作但不会显示给用户的东西。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2013-04-01
    • 1970-01-01
    • 2011-05-20
    • 2018-08-12
    • 2011-03-01
    • 2017-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多