【问题标题】:How to delete progressBar in android?如何在android中删除progressBar?
【发布时间】:2016-02-24 08:11:39
【问题描述】:

我已经知道progressBar.setVisibility(View.GONE) 可以隐藏进度条。

但是和ProgressDialog.dismiss()一样吗?

由于AsyncTask block Unity(UI) thread issue,我只能使用progressBar。

我想要实现的是永久删除它,而不仅仅是隐藏一段时间。

【问题讨论】:

  • 永久删除?为什么?只需设置可见性。
  • ProgressBar 和 ProgressDialog 是两个不同的东西。第一个是视图,第二个是包含视图的对话框。
  • @XaverKapeller 因为它显示了一段时间后,就不再需要它了。
  • 首先使用 .dismiss() 将其关闭,如果您想释放它,则将其设置为 null
  • 当您执行 View.GONE 时,视图已从视图层次结构中删除,仅当您持有对类中对象的引用时才缓存视图对象,如果只是将该引用分配给 null,然后它有效地删除了视图,但 xml 文件仍将包含您键入的任何内容,并且由于您为该视图提供了一个 ID,因此在 R 类中将有一个 ID 引用它,但是如果您要在您以编程方式创建 ProgressBar需要它,然后通过删除对进度条的引用,您将有效地删除它

标签: android android-progressbar


【解决方案1】:

当您执行 View.GONE 时,视图将从视图层次结构中删除,只有当您在类中持有对对象的引用时,才会缓存视图对象,如果只是将该引用分配给 null,那么它会有效地删除视图,但 xml 文件仍将包含您键入的任何内容,并且由于您为此视图提供了一个 ID,因此在 R 类中将有一个对它的 ID 引用,但是如果您要在需要时以编程方式创建 ProgressBar,那么通过删除对进度条的引用,您将有效地删除它

编辑

oops View.GONE 显然不会将其从视图层次结构中删除,您可以做些什么来删除它

((ViewGroup)mProgressBar.getParent()).removeView(mProgressBar)

实际上会从其父视图中删除视图,请确保父视图可转换为 ViewGroup

【讨论】:

  • 因此仅调用 View.Gone 不会将自身从视图层次结构中删除。而且我还需要调用removeView。我说的对吗?
  • @AlexWei 是的,removingView 肯定会删除它,设置 View.GONE 由您决定,但只需执行 removeView 视图将被删除,这意味着您不必单独设置可见性
【解决方案2】:

ProgressDialog 显然是一个对话框,因此您可以将其关闭,但 ProgressBar 是一个视图,因此可以使用可见性隐藏它。

【讨论】:

  • 是的。但是如果我很确定我不再需要progressBar,有没有办法永久删除它?
  • 没有问题,不用担心。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-02
  • 1970-01-01
  • 1970-01-01
  • 2017-08-03
  • 1970-01-01
  • 1970-01-01
  • 2014-03-27
相关资源
最近更新 更多