在Android 2.3上,ActionBar的setProgressBarIndeterminateVisibility(false)无法正常工作。

6

setProgressBarIndeterminateVisibility(false)在Android 2.3上无效。 我正在使用以下代码。进度条总是显示,无法隐藏。 相同的代码在Android 4.x上有效,进度条被隐藏了。Activity继承自SherlockFragmentActivity,并且没有调用setSupportProgressBarIndeterminateVisibility(true);使进度条可见。 完整代码如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
    ((SherlockFragmentActivity) JbActivity.this)
            .requestWindowFeature((long) com.actionbarsherlock.view.Window.FEATURE_INDETERMINATE_PROGRESS);
    super.onCreate(savedInstanceState);

    setSupportProgressBarIndeterminateVisibility(false);
    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    restart = false;
    actionBar = getSupportActionBar();
    if (SelectedItems.isNull()) {
        restart = true;
        try {
            String jsonString = savedInstanceState
                    .getString("SelectedItems");
            SelectedItems.build(jsonString);
        } catch (Exception e) {
            Intent mainIntent = new Intent(JbActivity.this,CityList.class);
            mainIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(mainIntent);
            finish();
        }
    }

}

我的代码中没有调用进度条,您能否建议一种方法,使我可以在Android 2.x上隐藏进度条。谢谢。

3个回答

14

尝试使用以下代码:

getSherlockActivity().setSupportProgressBarIndeterminateVisibility(false);

如果您是在SherlockFragment中调用它,或者只需执行以下操作:

setSupportProgressBarIndeterminateVisibility(false);

谢谢你的回答,我正在调用扩展SherlockFragmentActivity的活动,在OnCreate()方法中。所以没有getSherlockActivity()方法,我尝试了getSherlock().setProgressBarIndeterminateVisibility(false);和setSupportProgressBarIndeterminateVisibility(false);但是没有成功。 - user1796624
首先,请发布更多的代码,展示在给定代码之后你正在做什么。如果你有一些代码可以再次显示进度条,那就展示出来吧。基本上,你想要实现什么? - hardartcore
实际上,你的答案是正确的 setSupportProgressBarIndeterminateVisibility(false); 看起来可以工作,谢谢。 - user1796624
糟糕,我总是忘记使用支持调用而不是常规调用。 - theblang

1
尝试使用这种方法进行显示:
setSupportProgressBarIndeterminateVisibility(true); 

这个方法是用来隐藏的:
setSupportProgressBarIndeterminateVisibility(false); 

在安卓2.3.3到4.1.7系统上,两个都能正常工作。


0

只需调用

setSupportProgressBarIndeterminateVisibility(false);

setContentView 之后


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接