5

我用我的应用程序设置了 ActionBarSherlock,我正在尝试使用中间进度,我正在使用这个:

    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);    
    setSupportProgressBarIndeterminateVisibility(false);

在我的 onCreate 中,然后使用:

    setSupportProgressBarIndeterminateVisibility(true);

启用它。

它在 ICS 中运行良好,但在 Gingerbread 或 Froyo 中根本不起作用,有人知道如何让它工作吗?谢谢

4

4 回答 4

13

我只是有同样的问题。上面 Jake 的解决方案没有为我解决 - 该方法未定义。

我在这里找到了 Jake 在 ActionBarSherlock 的错误列表中发布的工作解决方案:

请参阅 Jake 对海报的回应——诀窍是首先调用getSupportActionBar(),以“触发视图的创建”。

所以我的onCreate()方法是:

protected void onCreate(Bundle arg0)
{
    super.onCreate(arg0);

    // allow window to show progress spinner in the action bar
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
    getSupportActionBar();
    setSupportProgressBarIndeterminateVisibility(false); 
}

根据 Laux 的评论更新:

确保您的导入反映com.actionbarsherlock.view.Window.FEATURE_INDETERMINATE_PROGRESS此功能。

这是我import使用此模式的应用程序块的一部分:

import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.ActionProvider;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.Window;
import com.actionbarsherlock.widget.ShareActionProvider;

使用 ABS 时要记住这一点非常好 - 您应该更新许多正常的 Android 导入以引用 ABS。

重新访问您的导入块可能是个好主意,或者可能完全删除它并让 Eclipse 为您重建它(CTRL-SHIFT-O),此时 Eclipse 将提示您进行 ABS 重新声明的每个导入。

Glebbb 在他的回答中也解释了这一点。

于 2012-11-06T08:19:23.420 回答
4

我敢肯定你现在可能已经弄清楚了,但最可能的罪魁祸首是你包含了错误的文件,因为它很容易自动完成。

将任何导入的android.view.Window替换为com.actionbarsherlock.view.Window并且所需的功能将起作用。

于 2012-12-06T09:30:13.417 回答
0

你需要打电话supportRequestWindowFeature

requestWindowFeature是最后的方法,Activity不能被覆盖。

于 2012-07-09T20:10:52.967 回答
-1

检查您是否Theme.Sherlock.NoActionBar为此活动使用或类似的无操作栏主题。在这种情况下setSupportProgressBarIndeterminateVisibility,方法对我来说失败了

Caused by: java.lang.NullPointerException
at com.actionbarsherlock.internal.ActionBarSherlockCompat.updateProgressBars(ActionBarSherlockCompat.java:710)
at com.actionbarsherlock.internal.ActionBarSherlockCompat.onIntChanged(ActionBarSherlockCompat.java:686)
at com.actionbarsherlock.internal.ActionBarSherlockCompat.updateInt(ActionBarSherlockCompat.java:681)
at com.actionbarsherlock.internal.ActionBarSherlockCompat.setFeatureInt(ActionBarSherlockCompat.java:665)
at com.actionbarsherlock.internal.ActionBarSherlockCompat.setProgressBarIndeterminateVisibility(ActionBarSherlockCompat.java:637)
at com.actionbarsherlock.app.SherlockFragmentActivity.setSupportProgressBarIndeterminateVisibility(SherlockFragmentActivity.java:282)

我想您应该使用进度对话框来指示加载过程或定期Theme使用活动标题栏,然后使用setProgressBarIndeterminateVisibility旧平台的方法。

于 2012-08-30T07:36:34.973 回答