Można ustawić „klikalny” atrybut na „true” w układzie, który zawiera ProgressBar:
<FrameLayout
android:id="@+id/progressBarContainer"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:clickable="true" >
<ProgressBar
android:id="@+id/progressBar"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center" />
</FrameLayout>
Potem zaś ProgressBar jest widoczny, jego opakowanie (który wypełnia cały ekran, chociaż jest niewidoczny) przechwyci wszelkie zdarzenia kliknięcia, aby nie wpadły one w podstawowy układ podczas wyświetlania paska ProgressBar.
Aby to wykorzystać, to zrobić, gdy chcesz pokazać ProgressBar:
findViewById(R.id.progressBarContainer).setVisibility(View.VISIBLE);
a następnie zrobić to, gdy jesteś z nim zrobić:
findViewById(R.id.progressBarContainer).setVisibility(View.INVISIBLE);
Na przykład, jeśli” Ponownie użyj tego w AsyncTask, możesz uczynić go widocznym w onPreExecute(), a następnie uczynić go niewidocznym w onPostExecute().
Zawsze po prostu ręcznie ustawiłem moje przyciski na CZYKLICZNE (FAŁSZ), gdy aktywne jest dowolne niestandardowe wyskakujące okienko. Ale chciałbym wiedzieć, czy istnieje czystsze rozwiązanie. – Jonny07
Prawdopodobnie musisz wyłączyć podstawowy układ, gdy wskaźnik jest aktywny: http://stackoverflow.com/questions/12300796/android-how-to-disable-controls-during-progress-bar-is-active – JDJ
Wierzę, że Próbowałem, ale to nie zadziałało. – Jonny07