2014-12-17 4 views
5

나는 SwipeRefreshLayout을 (를) 사용합니다. 몇 가지 질문이 있습니다.SwipeRefreshLayout에서 터치 이벤트를 사용 중지하는 방법은 무엇인가요?

  1. 활성 상태 일 때 터치 스크린을 차단하는 방법 onRefresh()?
  2. 업데이트하는 동안 화면 대신 회전 중심에서 진행하는 방법은 무엇입니까?

    swipeLayout = (SwipeRefreshLayout) v.findViewById(R.id.swipe_status_info); 
    swipeLayout.setColorSchemeColors(Color.RED, Color.GREEN, Color.BLUE, Color.CYAN); 
    swipeLayout.setOnRefreshListener(this); 
    
    
    @Override 
    public void onRefresh() { 
        clearTable(holidayTable); 
        clearTable(cityayTable); 
        setData(); 
    } 
    

답변

1
  1. 당신이 새로 고치는 동안 터치 이벤트를 받고 일부보기 (blockedView)를 차단하려는 경우에는 OnTouchListener에서 해당 이벤트 소비 할 수 있습니다 :

    @Override 
    public void onRefresh() { 
        clearTable(holidayTable); 
        clearTable(cityayTable); 
        setData(); 
        refreshing = true; 
    } 
    ... 
    
    blockedView.setOnTouchListener(new View.OnTouchListener() { 
        @Override 
        public boolean onTouch(View v, MotionEvent event) { 
         //consuming the touch 
         if (refreshing) return true; 
         //letting the touch propagate 
         else return false; 
        } 
    }); 
    
  2. 이 설정을 이 방법을 사용하여 픽셀 단위로 offset을 요청하십시오.

관련 문제