【问题标题】:Android ActionBarSherlock ProgressBar always IndeterminateAndroid ActionBarSherlock ProgressBar 总是不确定
【发布时间】:2013-02-04 11:51:33
【问题描述】:

我有一个扩展 SherlockActivity 的活动,但进度条始终是不确定的,即使没有将其设置为 true 或在将其设置为 false 之后也是如此。

我已经检查了导入:

import com.actionbarsherlock.view.Window;

该活动实际上扩展了 Sherlock:

public class MyActivity extends SherlockActivity {

这里是 onCreate 方法:

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
    setProgressBarIndeterminate(false);
    setSupportProgressBarIndeterminateVisibility(false);

我在任何地方都没有将其设置为true,但它仍然会出现而不离开。

清单:

   <activity
        android:name=".activities.MyActivity"
        android:screenOrientation="portrait" >
    </activity>

有什么可能导致这种情况的想法吗?

谢谢!

【问题讨论】:

    标签: android actionbarsherlock android-progressbar


    【解决方案1】:

    我只是启用和禁用 ActionBarShareLock ProgressBar。

    不确定,但可能对您有所帮助。 以下是我的代码:

    public class IndeterminateProgress extends SherlockActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setTheme(SampleList.THEME); //Used for theme switching in samples
        super.onCreate(savedInstanceState);
    
        //This has to be called before setContentView and you must use the
        //class in com.actionbarsherlock.view and NOT android.view
        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
    
        setContentView(R.layout.iprogress);
    
        findViewById(R.id.enable).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                setSupportProgressBarIndeterminateVisibility(true);
            }
        });
        findViewById(R.id.disable).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                setSupportProgressBarIndeterminateVisibility(false);
            }
        });
    }
    

    }

    更新

    你试过这个吗:

      getSherlock().setProgressBarIndeterminate(indeterminate);
    

     getSherlock().setProgressBarVisibility(visible);
    

    我的意思是在去 Ideterminate 或更改其可见性之前尝试调用 getSherlock()。

    让我评论一下结果。

    希望这会对你有所帮助。

    【讨论】:

    • 谢谢@iDroid Explorer;在这个活动中做了一个类似的样本(当然是祝酒),但它永远不会消失。尴尬...
    • 你的意思是你不能禁用进度条?
    • 基本上是这样,当我设置 setSupportProgressBarIndeterminate(false); ProgressBar 保留在那里。
    • 不幸的是,正如我所料,它并没有解决问题。确实有问题,因为在活动开始时进度条已经不确定(即使我没有设置它)
    • 嗯,不知道你的情况。但在这里我也可以使用相同的代码禁用。
    【解决方案2】:

    尝试如下:

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
          requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
          requestWindowFeature(Window.FEATURE_PROGRESS);
          setContentView(R.layout.browser);
          setProgressBarIndeterminateVisibility(true);
          setProgressBarVisibility(true);         
          findViewById(R.id.enable).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
             setProgressBarIndeterminateVisibility(false);
                 setProgressBarVisibility(false);
        }
      });
        }
    

    【讨论】:

    • 谢谢;我已经尝试了确切的示例(使用我的布局),但它没有解决它。而且,我在 HTC 和 Galaxy I 上都试过了……
    • 您有正在处理进度事件的视图吗?
    • @GrIsHu 这个问题只发生在 API 版本 8 中
    【解决方案3】:

    嗯,

    我找不到解释为什么它总是不确定的。 另外,这绝对行不通

    getSherlock().setProgressBarIndeterminate(false);
    

    但是使用

    getSherlock().setProgressBarIndeterminateVisibility(false);
    

    似乎解决了这个问题。

    【讨论】:

    • 另外,请务必在调用 setContentView(...) 之后调用 getSherlock().setProgressBarIndeterminateVisibility(false);
    【解决方案4】:

    这样做 就在您声明您的活动视图之前传递进度条并在定义您的视图之后禁用进度条的可见性,然后在您的任何点击上启用进度条的可见性

    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);  
                setContentView(R.layout.yourlayout);
                setSupportProgressBarIndeterminateVisibility(false);
                ......
                    ......
                         .........
                          ...OnClick()
                              {
                               setSupportProgressBarIndeterminateVisibility(true);
                                }
                                 .............
    

    【讨论】:

      【解决方案5】:

      我遇到了同样的问题,我花了 5 个小时调试 ABS 来调查问题。解决方法很简单:

      用途:

      com.actionbarsherlock.view.Window.FEATURE_INDETERMINATE_PROGRESS

      喜欢:

      requestWindowFeature(com.actionbarsherlock.view.Window.FEATURE_INDETERMINATE_PROGRESS);

      代替:

      android.view.Window.FEATURE_INDETERMINATE_PROGRESS

      【讨论】:

        猜你喜欢
        • 2023-04-08
        • 1970-01-01
        • 1970-01-01
        • 2021-09-23
        • 2012-11-06
        • 1970-01-01
        • 1970-01-01
        • 2011-02-07
        • 2012-10-31
        相关资源
        最近更新 更多