Android SwiperRefreshLayout 에서 디 스 플레이 새로 고침 애니메이션 을 처음 불 러 옵 니 다.

전재 하 다    저자: 다 야 광  주소:http://blog.csdn.net/lovefish2/article/details/45242731
Swiper RefreshLayout 는 구 글 이 공식 적 으로 내 놓 은 드 롭 다운 리 셋 컨트롤 로 최근 프로젝트 에 사 용 될 때 문제 가 발생 했 습 니 다.데 이 터 를 처음 불 러 올 때 새로 고침 한 애니메이션, 즉 Swiper RefreshLayout 가 자체 적 으로 가지 고 있 는 CircleView 애니메이션 (이전 버 전 sdk 는 무지개 줄) 을 표시 하고 싶 지만 기본 setRefreshing (true) 방법 으로 는 처음으로 애니메이션 효 과 를 불 러 올 수 없습니다.우 리 는 이렇게 처리 할 수 있다.
swipeRefreshLayout.setProgressViewOffset(false, 0,  (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24, getResources().getDisplayMetrics()));
swipeRefreshLayout.setRefreshing(true);
 
   
   
  
 
  
 
  
 
   
   
  

不过由于显示的动画只是CircleView原地转圈,不包含下拉过程的动画。数据处理过程时间一般不会很长,所以显示时间较短。我们可以手动的增加动画延时。

final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
        @Override
         public void run() {
             swipeLayout.setRefreshing(false);
             errorSwipeLayout.setRefreshing(false);
         }
}, 1000);

업데이트 문제: 2.3 장치 에 이러한 bug 가 발생 할 수 있 습 니 다. 손가락 이 미 끄 러 지 는 거리 가 새로 고침 을 촉발 하 는 조건 에 이 르 지 못 하면 CircleView 는 공백 을 표시 하고 화면 에 계속 서 있 습 니 다.4.0 이상 의 설 비 는 이런 상황 이 없다.
원인: 알 수 없 음.만약 큰 신 이 알 고 있다 면, 가르침 을 주 십시오!
해결 방법: setProgressView Offset 의 첫 번 째 매개 변 수 는 true 로 설정 합 니 다.Z 방향 에서 progress spinner 가 표시 하 는 보기 보다 높 지 않 으 면 수정 에 문제 가 없 을 것 입 니 다.
참고 자료:
1. http://stackoverflow.com/questions/26858692/swiperefreshlayout-setrefreshing-not-showing-indicator-initially
2. https://code.google.com/p/android/issues/detail?id=77712

좋은 웹페이지 즐겨찾기