2014-12-17 17 views
5

Używam SwipeRefreshLayout przez Google. i mam kilka pytań.Jak wyłączyć zdarzenia dotykowe w SwipeRefreshLayout?

  1. jak zablokować ekran dotykowy w momencie, gdy jest aktywny onRefresh()?
  2. jak postępować w centrum wirowania ekranu zamiast u góry, podczas aktualizacji?

    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(); 
    } 
    

Odpowiedz

1
  1. Jeśli chcesz zablokować jakiś pogląd (blockedView) z coraz dotykowy zdarzenie podczas odświeżania można spożywać to wydarzenie w 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. ustawić pożądane offset w pikselach przy użyciu tej metody:

    swipeLayout.setProgressViewOffset(true, 0, offset); 
    
Powiązane problemy