2016-04-14 5 views
1

Я знаю, что вызов myRefreshLayout.setRefreshing (false) завершит анимацию обновления ... НО, он не просто остановится, он завершает текущее вращение и анимирует за пределами экрана.SwipeRefreshLayout прекратить обновление без анимации

Есть ли способ избежать этого в некоторых случаях? Я ищу, чтобы он мгновенно исчез.

Спасибо!

ответ

0

Попробуйте это:

int cnt = swiperefresh.getChildCount(); 
          for(int i=0; i<cnt; i++) { 
           View ch = swiperefresh.getChildAt(i); 
           if(ch.getClass().getSimpleName().equals("CircleImageView")) { 
            ch.clearAnimation(); 
            ch.setVisibility(View.GONE); 
            swiperefresh.setRefreshing(false); 
            ch.clearAnimation(); 
            break; 
           } 
          } 
0

Я нашел изящный способ. Существует reset() метод в SwipeRefreshLayout, который отменяет анимацию и сразу скрывает прогресс, который можно сделать без анимации. К сожалению, этот метод является приватным пакетом. Но он называется во время setEnabled(false), поэтому вы можете использовать его следующим образом:

swipeRefreshLayout.setEnabled(false) 
swipeRefreshLayout.setEnabled(true) 

 Смежные вопросы

  • Нет связанных вопросов^_^