【问题标题】:Show Window Progress but not ActionBar Progress (using v7 compat library)显示窗口进度但不显示 ActionBar 进度(使用 v7 兼容库)
【发布时间】:2014-01-08 19:02:45
【问题描述】:

我见过一些人试图显示一个不确定的进度条,这与我遇到的问题正好相反。

我想要的是当应用程序开始工作时,用户会在Window 的顶部看到一个不确定的进度条。然后在工作完成后离开。

我正在使用 app compat v7 库。我的Activity 扩展了android.support.v7.app.ActionBarActivity

我在Activity.onCreate() 中的代码是:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

    setContentView(R.layout.main);

    ...
}

然后当工作开始时(在 Fragment 中,而不是在主线程中):

((ActionBarActivity) getActivity()).setSupportProgressBarIndeterminateVisibility(true);

那么当工作完成时:

((ActionBarActivity) getActivity()).setSupportProgressBarIndeterminateVisibility(false);

我无法解释的两种奇怪行为。首先,在setSupportProgressBarIndeterminateVisibility(true) 上,Window 进度显示(我想要的)操作栏的圆形进度条显示。

其次,在setSupportProgressBarIndeterminateVisibility(false) Window 进度隐藏(万岁)就是这样...圆形进度条保持可见...

所以我不知道为什么会发生任何操作栏的进度问题,也不知道如何让它停止。如果我知道操作栏中进度视图的id,我可以在菜单中查看它并确保它保持隐藏状态,但我不知道id(也似乎是错误的处理方式那个)。

任何解释这种行为的帮助都会很棒。谢谢!!

【问题讨论】:

    标签: android android-progressbar android-actionbar-compat


    【解决方案1】:

    第一期:

    从给出的代码中并不明显,但对setSupportProgressBarIndeterminateVisibility 的调用是从后台线程调用的。如果我将该代码移至 UI 线程,则一切正常,不会出现 UI 故障。

    第二期:

    似乎默认行为应该是在 ActionBar 上显示圆形进度条。不完全确定为什么活动顶部的进度也会显示。您可以使用样式隐藏 ActionBar 的进度,但在旧版 Android 平台上测试之前,我不再使用该样式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-27
      相关资源
      最近更新 更多