2013-01-14 15 views
6

Próbuję odtworzyć doświadczenie znalezione podczas odinstalowywania aplikacji w usłudze ICS. W szczególności nieokreślony wskaźnik postępu pod paskiem tytułu. Próbowałem przy użyciu requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS) i różnych metod na Activity, ale na próżno. Zamiast tego wyświetla się pasek postępu w prawym górnym rogu ekranu/paska tytułu. Czy tu brakuje czegoś prostego? Czy to jest całkowicie niestandardowe?Nieokreślony postęp w działaniu Androida

Oto kod używam:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
    super.onCreate(savedInstanceState); 

    setProgressBarIndeterminate(true); 
    setProgressBarIndeterminateVisibility(true); 
} 

Uninstall Screenshot

+1

Czy próbowałeś użyć atrybutów 'nieokreślony' na swoim pasku postępu? Zobacz http://stackoverflow.com/questions/6449345/android-indeterminate-progress-bar i http://developer.android.com/reference/android/widget/ProgressBar.html – saschoar

+0

Pokaż kod, którego używasz. – Squonk

Odpowiedz

8

Używasz nieokreślonego paska postępu ActionBar, ale szukasz widoku ProgressBar.

Można utworzyć View programowo lub dodać go do pliku layoutu jak -

<ProgressBar 
    android:id="@+id/progressBar1" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:indeterminate="true" /> 

Zazwyczaj można zdecydować, kiedy jest ono pokazane przez wywołanie .setVisibility(View.VISIBLE) pokazać i .setVisibility(View.GONE) gdy skończysz.

Jeśli masz minimum API równe 11 i ustawisz swoją aktywność lub motyw aplikacji na @android:style/Theme.Holo, otrzymasz dokładnie to zdjęcie ProgressBar pokazane na obrazku.

Jeśli chcesz podobny wpływ na pre-API 11 urządzeń, sprawdź HoloEverywhere

+0

HoloEverywhere wygląda tak, jakby się przeniósł tutaj: https://github.com/Prototik/HoloEverywhere – Brett

+0

@Brett thanks, zaktualizował link w mojej odpowiedzi – iagreen

0

To poziomy pasek postępu na obrazie, akcja Bar nieokreślony postęp jest styl Spinner. Musisz albo utworzyć niestandardowy widok paska akcji, albo umieścić go jako widok w głównym układzie. Możesz ukryć pasek akcji i utworzyć niestandardowy nagłówek dla określonego działania. Wystarczy użyć nieokreślonego paska postępu stylu Spinnera, który wszyscy oczekują na pasku akcji.

4

Wsparcie @ odpowiedź iagreen wciąż jest słuszna - aby uzyskać układ podobny do aktywności odinstalować najlepszym rozwiązaniem jest po prostu używać go w układzie, a nie polegać na funkcjach okna)

Ale byłeś na dobrej drodze z funkcjami Windows, po prostu miksowałeś dwa z nich.

See, to:

setProgressBarIndeterminate(true); 

żąda okna [Horizontal] pasek postępu być nieokreślona. I tak:

setProgressBarIndeterminateVisibility(true); 

przedstawia okno w nieokreślony pasek postępu - Chodzi o to, że jest to całkowicie diffrerent widok.

Aby wyjaśnić co dalej, to dostaje się bar poziomy nieokreślony postępu widoczny u góry okna

requestWindowFeature(Window.FEATURE_PROGRESS); 
setProgressBarIndeterminate(true); 
setProgressBarVisibility(true); 

i ten dostaje się spinner stylu pasek postępu w actionbar

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
setProgressBarIndeterminateVisibility(true); 
Powiązane problemy