Показывать прогресс spinner (обновление) на ActionBar?
Я использую ActionBar. Я бы хотел, чтобы в заголовке появился индикатор обновления, если я его закручу, иначе скрыть его. Это возможно?:
// My menu has a refresh item, but it shouldn't be visible on the
// actionbar unless it spinning.
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_refresh"
android:title="@string/refresh"
android:icon="@drawable/ic_action_refresh" />
</menu>
...
// When I need to show some work being done on my activity,
// can I somehow now make the spinner associated with the
// refresh item become visible on the action bar?
getActionBarHelper().setRefreshActionItemState(true);
Я не хочу этого на ActionBar, если он не "работает" /вращается.
Спасибо
Ответы
Ответ 1
Извините за отсутствие тегов кода, размещение с телефона...
Это из ActionbarSherlock (Google, если вы его не встретили, разрешает поддержку панели действий в сотах)
В onCreate of main activity
// This has to be called before setContentView and you must use the
// class in android.support.v4.view and NOT android.view
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
Чтобы показать/скрыть прогресс в панели действий. Обратите внимание, что с помощью actionbarsherlock вы должны использовать boolean.TRUE/FALSE, а не только true/false.........
if (getSupportLoaderManager().hasRunningLoaders()) {
setProgressBarIndeterminateVisibility(Boolean.TRUE);
} else {
setProgressBarIndeterminateVisibility(Boolean.FALSE);
}
Ответ 2
Если вы выходите из ActionBarActivity, попробуйте следующее:
public class MainActivity extends ActionBarActivity {
boolean showUp=true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.activity_main);
setSupportProgressBarIndeterminateVisibility(Boolean.TRUE);
Button b = (Button) findViewById(R.id.myButton);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(showUp){
setSupportProgressBarIndeterminateVisibility(Boolean.FALSE);
}else {
setSupportProgressBarIndeterminateVisibility(Boolean.TRUE);
}
showUp=!showUp;
}
});
}