2013-06-27 57 views
0

我想使用SystemUiHider活動設置來創建一個界面,頂部和底部菜單中的某些元素向下滾動時隱藏。但觸摸並向上滾動顯示。systemuihider隱藏在卷軸上

默認SystemUiHider有這個方法做檢測手勢

// Set up the user interaction to manually show or hide the system UI. 
    contentView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      if (TOGGLE_ON_CLICK) { 
       mSystemUiHider.toggle(); 
      } else { 
       mSystemUiHider.show(); 
      } 
     } 

     //want an onscrolldown listener 
    }); 

我怎麼會修改這個檢測我想要的那種信息。 OnClickListener能檢測滾動嗎?或者,我是否需要一種不同類型的監聽器或實現的自定義手勢。

+2

我會覆蓋'的onTouchEvent(MotionEvent EV)'和檢查,如果該事件是一個向上或向下滾動和行爲。 –

回答

1

我不知道如果我的理解correctly.But,我猜你正在尋找的手勢檢測。在這種情況下,設置onTouchListener它和覆蓋onTouchListener

@Override 
public boolean onTouch(View v, MotionEvent event) { 

    switch (event.getAction()) 
    { 
    case MotionEvent.ACTION_DOWN: 
    { 
     canHandleMove=true; 
     lastY = touchevent.getY(); 
     Log.d("tag", "touch down at "+lastX); 
     break; 
    } 

    case MotionEvent.ACTION_UP: 
    case MotionEvent.ACTION_MOVE: 
    { 
     if(canHandleMove) 
     { 
     canHandleMove=false; 
     float currentY = event.getY(); 
     Log.d("tag", "touch up at "+currentY); 

     float diff=((lastY<currentY)?(currentY-lastY):(lastY-currentY)); 
     if(diff>10) 
     { 
     if (lastY < currentY) 
     { 
      // Move Up 
     } 
     if (lastY > currentY) 
     { 
      // Move Down 
     } 
     } 
     break; 
     } 
    } 
    } 
    return true; 
}