Android ActionBarSherlock ProgressBar всегда не определен

У меня есть действие, которое расширяет SherlockActivity, но индикатор выполнения всегда неопределен, даже если для него не задано значение true или после установки значения false.

Я уже проверил импорт:

import com.actionbarsherlock.view.Window;

Активность на самом деле расширяет Шерлока:

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>

Любые идеи о том, что может быть причиной этого?

Спасибо!


person dwbrito    schedule 04.02.2013    source источник


Ответы (5)


Я просто включаю и отключаю 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);

Я имею в виду, попробуйте вызвать getSherlock(), прежде чем переходить к Ideterminate или изменить его видимость.

Позвольте мне прокомментировать результат.

Надеюсь, что это поможет вам.

person Shreyash Mahajan    schedule 04.02.2013
comment
спасибо, @iDroid Explorer; сделал аналогичный образец в этом упражнении (конечно, с тостом), но он никогда не исчезает. неловко... - person dwbrito; 04.02.2013
comment
Вы имеете в виду, что вы не можете отключить Progressbar? - person Shreyash Mahajan; 04.02.2013
comment
В основном это правда, когда я устанавливаю setSupportProgressBarIndeterminate(false); ProgressBar остается там. - person dwbrito; 04.02.2013
comment
к сожалению, как я и ожидал, это не решило проблему. Это действительно что-то не так, потому что в начале действия индикатор выполнения уже не определен (даже если я его не устанавливаю) - person dwbrito; 04.02.2013
comment
Хммм, ну не знаю о вашем состоянии. но здесь я также могу отключить с тем же кодом. - person Shreyash Mahajan; 04.02.2013
comment
просто неудобно; Я посмотрю на это позже, и если я найду что-то, я опубликую это. в любом случае, спасибо! - person dwbrito; 04.02.2013

Попробуйте, как показано ниже:

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);
    }
  });
    }
person GrIsHu    schedule 04.02.2013
comment
Спасибо; я пробовал точный пример (с моим макетом), но это не исправило. Более того, я пробовал это и в HTC, и в Galaxy I... - person dwbrito; 04.02.2013
comment
У вас есть представление, для которого вы обрабатываете событие прогресса? - person GrIsHu; 04.02.2013
comment
@GrIsHu эта проблема возникла только в версии API 8. - person bCliks; 24.01.2014

Хорошо,

Я не могу найти объяснение, почему это всегда неопределенно. Кроме того, это определенно не работает

getSherlock().setProgressBarIndeterminate(false);

Однако используя

getSherlock().setProgressBarIndeterminateVisibility(false);

кажется решает проблему.

person dwbrito    schedule 04.02.2013
comment
Кроме того, обязательно вызовите getSherlock().setProgressBarIndeterminateVisibility(false) ПОСЛЕ вызова setContentView(...); - person Ciske; 28.01.2014

сделайте это непосредственно перед тем, как объявить свой вид активности, передайте индикатор выполнения, и после определения вашего представления отключите видимость индикатора выполнения, а затем при любом щелчке включите видимость панели

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);  
            setContentView(R.layout.yourlayout);
            setSupportProgressBarIndeterminateVisibility(false);
            ......
                ......
                     .........
                      ...OnClick()
                          {
                           setSupportProgressBarIndeterminateVisibility(true);
                            }
                             .............
person Nasz Njoka Sr.    schedule 18.05.2013

Это была та же проблема, что и у меня, и мне потребовалось 5 часов, чтобы отладить ABS, чтобы исследовать проблему. Решение очень простое:

Использовать:

com.actionbarsherlock.view.Window.FEATURE_INDETERMINATE_PROGRESS

Нравиться:

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

Вместо:

android.view.Window.FEATURE_INDETERMINATE_PROGRESS

person Community    schedule 27.04.2013