Używam android.support.v4.widget.SwipeRefreshLayout
w mojej aplikacji na Androida. Łączy się z ListView
. Zawartość widoku listy jest pobierana z serwera.Android ProgressBar w stylu widoku postępu w SwipeRefreshLayout
Widok postępu wyświetlany jest po przesunięciu użytkownika w celu ponownego załadowania danych z serwera. Widok postępu wygląda jak kawałek koła, który rośnie i kurczy się podczas animacji. Wygląda na to, że styl tego widoku postępu nie może być specjalnie dostosowany. Jednak jestem w porządku z jego wbudowanym stylem.
Wyświetlam również tę samą animację postępu podczas początkowego ładowania danych. Można to osiągnąć, dzwoniąc pod numer mySwipeRefreshLayout.setRefreshing(true)
. To też jest w porządku.
Chciałbym jednak pokazać to samo wskazanie postępu przez całą aplikację. Rozważ np. inna aktywność, która wygląda jak formularz z przyciskiem przesyłania. W tej aktywności formularza nie ma ani wartości ListView
ani SwipeRefreshLayout
. Podczas przesyłania przesłanych danych do serwera powinno być wyświetlane wskazanie postępu. Chcę pokazać pasek postępu z tą samą animacją jak w SwipeRefreshLayout.
Czy istnieje prosty i przejrzysty sposób na uzyskanie tego samego wskaźnika postępu zarówno dla SwipeRefreshLayout
, jak i działania formularza, który nie zawiera żadnego widoku listy i odświeżania układu i nie obsługuje żadnego gestu przesuwania?
Dzięki.
Dzięki za złożony przykład (+1). Muszę przyznać, że byłem zbyt leniwy, aby samemu eksperymentować z tym podejściem. Będę musiał owijać wszystkie moje działania za pomocą 'SwipeRefreshLayout', żeby" ukraść "jego animację postępu. Uważam to za "brudne" rozwiązanie. Miałem nadzieję, że może być np. sposób, aby ustawić jakiś styl na 'ProgressBar', aby wyglądał podobnie do widoku postępu' SwipeRefreshLayout'. – Cimlman
@Cimlman: sprawdź edytowaną odpowiedź! –
Nie jestem pewien, czy uznałabym to za brudne rozwiązanie, to było łatwe do wdrożenia w celu wyświetlenia strony internetowej i wygląda o wiele lepiej niż standardowe paski postępu. Dzięki! –